這篇文章將為大家詳細(xì)講解有關(guān)JS怎么實(shí)現(xiàn)前端緩存的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國際域名空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、羅湖網(wǎng)站維護(hù)、網(wǎng)站推廣。
1、js屬于一種解釋性腳本語言;2、在絕大多數(shù)瀏覽器的支持下,js可以在多種平臺下運(yùn)行,擁有著跨平臺特性;3、js屬于一種弱類型腳本語言,對使用的數(shù)據(jù)類型未做出嚴(yán)格的要求,能夠進(jìn)行類型轉(zhuǎn)換,簡單又容易上手;4、js語言安全性高,只能通過瀏覽器實(shí)現(xiàn)信息瀏覽或動態(tài)交互,從而有效地防止數(shù)據(jù)的丟失;5、基于對象的腳本語言,js不僅可以創(chuàng)建對象,也能使用現(xiàn)有的對象。
在前端瀏覽器中,有些數(shù)據(jù)(比如數(shù)據(jù)字典中的數(shù)據(jù)),可以在第一次請求的時(shí)候全部拿過來保存在js對象中,以后需要的時(shí)候就不用每次都去請求服務(wù)器了。對于那些大量使用數(shù)據(jù)字典來填充下拉框的頁面,這種方法可以極大地減少對服務(wù)器的訪問。這種方法特別適用于使用iframe的框架。
具體實(shí)現(xiàn)思路和方法:
創(chuàng)建一個(gè)cache.js文件:
1、前端頁面,定義那些數(shù)據(jù)需要一次性拿到前端緩存,定義一個(gè)對象來保存這些數(shù)據(jù):
/**
* 定義需要在用戶登錄的時(shí)候獲取到本地的數(shù)據(jù)字典類別
*/
var clsCodes = {clsCodes :
[BOOL,
STATUS,
USER_TYPE,
REPORT_STATUS
]
};
/**
* 獲取數(shù)據(jù)字典到本地
*/
var dicts;2、前端頁面,定義一個(gè)函數(shù)來調(diào)用后臺接口獲取數(shù)據(jù),然后保存到本地緩存對象(dicts)中。
function getDicts() {
$.post(getContextPath() + /api/sys/getDictList,
clsCodes,
function(resultBean, status, xhRequest) {
if (resultBean.data != undefined) {
dicts = resultBean.data;
}
},
'json');
}在主頁面加載的時(shí)候調(diào)用這個(gè)方法一次性獲取數(shù)據(jù)并緩存起來。這樣,以后需要同樣的數(shù)據(jù),就直接從本地對象dicts中獲取了。
后端Controller:
3、定義一個(gè)接口,根據(jù)前端的請求,查詢數(shù)據(jù)庫(或查詢服務(wù)器緩存,如下面例子中)獲取數(shù)據(jù)返回給前端:
/**
* 根據(jù)多個(gè)分類編號獲取多個(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,>關(guān)于“JS怎么實(shí)現(xiàn)前端緩存的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
新聞標(biāo)題:JS怎么實(shí)現(xiàn)前端緩存的方法
本文URL:http://chinadenli.net/article24/jgjpje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、微信公眾號、自適應(yīng)網(wǎng)站、python、網(wǎng)站維護(hù)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)