最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)前端緩存的方法

 更新時(shí)間:2017年09月21日 10:25:43   作者:Adam__Smith  
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)前端緩存的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在前端瀏覽器中,有些數(shù)據(jù)(比如數(shù)據(jù)字典中的數(shù)據(jù)),可以在第一次請(qǐng)求的時(shí)候全部拿過(guò)來(lái)保存在js對(duì)象中,以后需要的時(shí)候就不用每次都去請(qǐng)求服務(wù)器了。對(duì)于那些大量使用數(shù)據(jù)字典來(lái)填充下拉框的頁(yè)面,這種方法可以極大地減少對(duì)服務(wù)器的訪問(wèn)。這種方法特別適用于使用iframe的框架。

具體實(shí)現(xiàn)思路和方法:

創(chuàng)建一個(gè)cache.js文件:

1、前端頁(yè)面,定義那些數(shù)據(jù)需要一次性拿到前端緩存,定義一個(gè)對(duì)象來(lái)保存這些數(shù)據(jù):

/**
 * 定義需要在用戶登錄的時(shí)候獲取到本地的數(shù)據(jù)字典類(lèi)別
 */
var clsCodes = {clsCodes :
    [BOOL,
     STATUS,
     USER_TYPE,
     REPORT_STATUS
   ]
};
 
/**
 * 獲取數(shù)據(jù)字典到本地
 */
var dicts;

2、前端頁(yè)面,定義一個(gè)函數(shù)來(lái)調(diào)用后臺(tái)接口獲取數(shù)據(jù),然后保存到本地緩存對(duì)象(dicts)中。

function getDicts() {
  $.post(getContextPath() + /api/sys/getDictList,
      clsCodes,
      function(resultBean, status, xhRequest) {
        if (resultBean.data != undefined) {
          dicts = resultBean.data;
        }
      }, 
      'json');
}

在主頁(yè)面加載的時(shí)候調(diào)用這個(gè)方法一次性獲取數(shù)據(jù)并緩存起來(lái)。這樣,以后需要同樣的數(shù)據(jù),就直接從本地對(duì)象dicts中獲取了。

后端Controller:

3、定義一個(gè)接口,根據(jù)前端的請(qǐng)求,查詢數(shù)據(jù)庫(kù)(或查詢服務(wù)器緩存,如下面例子中)獲取數(shù)據(jù)返回給前端:

/**
 * 根據(jù)多個(gè)分類(lèi)編號(hào)獲取多個(gè)字典集合
 * @param clsCodes
 * @return {{clsCode : {code1:name1,code2:name2...}}, ...}
 */
@SuppressWarnings({ unchecked, rawtypes })
@ResponseBody
@RequestMapping(getDictList)
public ResultBean getDictList(@RequestParam(value = clsCodes[], required = true) String[] clsCodes) {
  ResultBean rb = new ResultBean();
   
  Map<string, string="">> dictCache = (Map<string, string="">>) CacheManager.getInstance().get(CacheConstants.DICT);
  Map dictMap = new LinkedHashMap<>(); //使用LinkedHashMap保證順序
 
  if(dictCache != null){
    for(String clsCode: clsCodes){
      dictMap.put(clsCode, dictCache.get(clsCode));
    }
  }else{
    rb.setMessage(緩存中拿不到字典信息!);
    rb.setSuccess(false);
  }
 
  rb.setData(dictMap);
  return rb;
}</string,></string,>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

进贤县| 桂林市| 高雄市| 商洛市| 怀集县| 葵青区| 城步| 寿宁县| 赞皇县| 滕州市| 富蕴县| 邓州市| 渝中区| 措美县| 临夏县| 乌恰县| 高雄县| 连云港市| 天等县| 古丈县| 桐乡市| 温宿县| 鄄城县| 桃园县| 禹州市| 邯郸县| 上林县| 浦东新区| 巴马| 焦作市| 谢通门县| 富宁县| 靖江市| 张家界市| 诸暨市| 茶陵县| 山西省| 阜阳市| 沅江市| 上思县| 拉孜县|