国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS實現前端緩存的方法

2019-11-19 15:20:56
字體:
來源:轉載
供稿:網友

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

具體實現思路和方法:

創建一個cache.js文件:

1、前端頁面,定義那些數據需要一次性拿到前端緩存,定義一個對象來保存這些數據:

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

2、前端頁面,定義一個函數來調用后臺接口獲取數據,然后保存到本地緩存對象(dicts)中。

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

在主頁面加載的時候調用這個方法一次性獲取數據并緩存起來。這樣,以后需要同樣的數據,就直接從本地對象dicts中獲取了。

后端Controller:

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

/** * 根據多個分類編號獲取多個字典集合 * @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,>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佳木斯市| 革吉县| 贵溪市| 宜城市| 潼关县| 澎湖县| 宜宾县| 那坡县| 临清市| 揭东县| 宝山区| 南京市| 虎林市| 鱼台县| 新疆| 阳高县| 洛扎县| 晴隆县| 周宁县| 五华县| 瓦房店市| 天峻县| 方城县| 昌乐县| 额尔古纳市| 吉木乃县| 仁怀市| 安多县| 邻水| 鸡西市| 公主岭市| 桂东县| 开平市| 左权县| 博客| 荣昌县| 固镇县| 清新县| 工布江达县| 临沧市| 库伦旗|