<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 閱讀(406) 評論(0)  編輯  收藏 所屬分類: misc

    主站蜘蛛池模板: 免费黄网站在线看| 日韩a毛片免费观看| 国产午夜亚洲精品不卡| 免费人成又黄又爽的视频在线电影| 人人爽人人爽人人片A免费 | 久久精品国产亚洲精品2020| 亚洲系列中文字幕| 亚洲精品无码专区在线| 一级特级aaaa毛片免费观看| 香蕉免费一区二区三区| 无码永久免费AV网站| 亚洲国产精品碰碰| 亚洲福利在线视频| 亚洲人成电影网站免费| 国产精品美女久久久免费| 99视频在线看观免费| 在线观看免费a∨网站| 久久精品夜色噜噜亚洲A∨| 亚洲精彩视频在线观看| 青娱乐在线免费观看视频| 鲁丝片一区二区三区免费| 女人被弄到高潮的免费视频| 三上悠亚亚洲一区高清| 亚洲女人影院想要爱| 思思久久99热免费精品6| 1000部无遮挡拍拍拍免费视频观看| 色吊丝永久在线观看最新免费| 一本色道久久综合亚洲精品高清| 亚洲大尺码专区影院| 日日躁狠狠躁狠狠爱免费视频 | 永久免费毛片手机版在线看| 亚洲一区二区三区在线观看精品中文 | 国产99在线|亚洲| 2022国内精品免费福利视频| 无码av免费毛片一区二区| 亚洲情a成黄在线观看| 亚洲人成人77777在线播放| 成人av片无码免费天天看| 成人片黄网站A毛片免费| 国产亚洲精品资源在线26u| 久久无码av亚洲精品色午夜|