<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    stone2083

    頁面端數據cache的一種實現思路

    今天在做項目的時候,遇到這樣一個需求,這個需求也比較常見:
    在顯示的一組list版面,當用戶鼠標移動到標題的時候,出現tips提示,里面顯示當前欄一些詳細信息。

    難點如下:
    1)由于list有多個標題(比如20個),不可能在一個request中,把所有的詳細信息取出來put到頁面上。所以只能通過ajax異步請求的方式取的數據。
    2)取詳細信息比較耗性能,需要走一次搜索引擎,走一次數據庫多表查詢進行結果統計。雖然取的過程比較耗服務器性能,但是取的結果集對象是很小的。
    3)單條詳細信息load次數只跟個別會員有關,比如,只有a會員的list頁面需要load 標題A的詳細信息,而且當a用戶多次將鼠標移到該標題上,會多次load數據。反觀站點整體訪問中,其他會員幾乎不用load 標題A的信息。所以,把這些詳細信息放到全局cache中,比如memcached中,命中率也會很低。不值得。(放session就更別提了,session不是用來放這些數據的:比如某個集群環境中,是使用session復制的機制;比如session過期,短時間內--甚至比較長的時間內,session依舊存在內存中,等等。。。)

    那么如何來解決這個問題呢?
    正當想說服需求方放棄這個需求時,出現了一個靈感,可以把數據cache在html頁面上。思路如下:

    1、在html頁面上放n個input元素:<input id="list1" type="hidden" value="" />。視為cache對象;
    2、首次取詳細信息,通過ajax異步訪問服務端,將得到的數據存放到相應的input元素中,并且在指定的div上顯示詳細信息;
    3、之后,取同內容的詳細信息,只要從相應的input元素中取得即可,并顯示在指定的div上。

    通過這樣處理,可以避免用戶多次向服務端取相同的信息。當然這樣處理,不能防止惡意用戶的訪問,但是能滿足80%用戶的正常流程,還是值得這么做的。

    總結一下,符合這種cache的應用場景:
    1)全局cache命中率低
    2)取數據過程耗性能,取得的結果集本身非常小。
    3)在某種場景下,需要多次重復取數據

    如果不滿足其中一條,那么這種cache思路,將毫無價值。

    文中所描述的,僅僅是一種cache的實現思路,并不是一種技術。








    posted on 2008-03-04 21:30 stone2083 閱讀(416) 評論(0)  編輯  收藏 所屬分類: misc

    主站蜘蛛池模板: 国产亚洲精品xxx| 337P日本欧洲亚洲大胆精品| 亚洲欧洲中文日韩久久AV乱码| 久久精品国产亚洲麻豆| 日韩色视频一区二区三区亚洲| 亚洲日本韩国在线| 亚洲Aⅴ在线无码播放毛片一线天| 两个人看的www免费视频| 亚洲AV无码一区二区三区在线观看| 亚洲欧洲精品久久| 亚洲欧美日韩中文二区| 国产在线播放线91免费| 亚洲视频在线观看免费视频| 亚洲国产综合专区在线电影| 亚洲国产成人手机在线观看| 久久免费国产视频| 亚洲2022国产成人精品无码区| 一级毛片免费观看不卡的| 亚洲AV无码乱码在线观看富二代| 鲁丝片一区二区三区免费| 亚洲精品专区在线观看| 免费大黄网站在线观| 美女视频免费看一区二区| 国产美女精品视频免费观看| 亚洲精品乱码久久久久蜜桃| 亚洲熟妇无码一区二区三区| 日本一区免费电影| 天堂在线免费观看| 四虎国产成人永久精品免费| 国产一精品一AV一免费| 最近中文字幕大全免费版在线| 亚洲av无码成人黄网站在线观看| 亚洲AV色香蕉一区二区| 久久久亚洲欧洲日产国码是AV | 久久国产乱子免费精品| 国产成人精品免费久久久久| 亚洲一区二区在线免费观看| 性短视频在线观看免费不卡流畅| 亚洲狠狠色丁香婷婷综合| 狼色精品人妻在线视频免费| a毛片免费全部在线播放**|