摘要:是一款緩存插件,可以為方法擴(kuò)展緩存功能。緩存清理插件本身會自動清理過期緩存對于不想繼續(xù)使用緩存的接口可以為方法傳入清理當(dāng)前接口的緩存并返回最新數(shù)據(jù)也可以調(diào)用清理所有插件產(chǎn)生的緩存。
原文鏈接
AJAX-Cache是什么Ajax是前端開發(fā)必不可少的數(shù)據(jù)獲取手段,在頻繁的異步請求業(yè)務(wù)中,我們往往需要利用“緩存”提升界面響應(yīng)速度,減少網(wǎng)絡(luò)資源占用。AJAX-Cache是一款jQuery緩存插件,可以為$.ajax()方法擴(kuò)展緩存功能。
AJAX-Cache提供什么 1. 定時緩存大多數(shù)的緩存場景是,希望將某個接口數(shù)據(jù)在一定時間段內(nèi)緩存起來,緩存期內(nèi)不再發(fā)起請求直接返回本地數(shù)據(jù),過了這段時間再重新獲取并更新緩存。
這就是“定時緩存”的典型使用場景,我們可以為$.ajax()方法傳入localCache: Number開啟定時緩存,Number是緩存秒毫秒數(shù)。定時緩存實際上是犧牲了數(shù)據(jù)實時性換取響應(yīng)速度,使用中通過設(shè)置不同的緩存時長,可以匹配不同的業(yè)務(wù)場景,比如對于相對穩(wěn)定的數(shù)據(jù)可以設(shè)置較長的緩存時間,而設(shè)置較短的緩存時間則可以起到請求“防抖”作用。
2. 快照緩存更多的時候我們希望接口能兼具實時性和響應(yīng)速度,比如應(yīng)用首屏的異步數(shù)據(jù)塊,既要快又要新,雖然這種需求聽起來很“不科學(xué)”,但我們確實可以通過“快照緩存”滿足這個需求。
為$.ajax()方法傳入localCache: "snapshot"可以開啟快照緩存,此時每當(dāng)接口成功請求后都會為數(shù)據(jù)建立一份“快照”,下次請求時接口會首先將最近的快照數(shù)據(jù)作為結(jié)果返回,供前端渲染界面,同時發(fā)送請求獲取最新數(shù)據(jù),新數(shù)據(jù)到達(dá)后會與快照做對比,如果與快照相同則緩存命中,如果與快照不同會更新快照,并將新數(shù)據(jù)返回,供前端更新界面。也就是說啟用快照緩存的接口前端有可能得到兩次返回結(jié)果,為了讓前端能夠區(qū)分出快照,對象格式的快照數(shù)據(jù)會自動增加一個snapshot=true的屬性。
3. 緩存清理插件本身會自動清理過期緩存;
對于不想繼續(xù)使用緩存的接口可以為$.ajax()方法傳入localCache: false清理當(dāng)前接口的緩存并返回最新數(shù)據(jù);
也可以調(diào)用$.ajaxCache.clear()清理所有AJAX-Cache插件產(chǎn)生的緩存。
4. 并發(fā)管理除了上述基本功能,AJAX-Cache還考慮到了極端情況下的請求并發(fā)問題,當(dāng)某個接口在本地沒有緩存或者緩存過期時發(fā)生了并發(fā),AJAX-Cache會攔截并發(fā)請求,暫存請求回調(diào),只向服務(wù)端發(fā)送一次請求,待拿到數(shù)據(jù)后再依次執(zhí)行暫存的請求回調(diào),從而真正起到減少網(wǎng)絡(luò)資源占用的作用。
5. 約定優(yōu)于配置最后,Ajax-Cache奉行“約定優(yōu)于配置”的理念,將主要功能都集中到一個localCache配置上,使用簡單,將對業(yè)務(wù)代碼的侵入性降到最低,如果沒有使用$.ajaxCache全局方法的話,從頁面中直接將Ajax-Cache插件移除業(yè)務(wù)代碼也不會報錯。
使用簡單不代表功能簡單,如果需要修改Ajax-Cache的全局配置,也可以通過$.ajaxCache.set(config[Object])方法實現(xiàn),目前有兩個配置項:
擴(kuò)展信息官網(wǎng):http://refined-x.com/AJAX-Cache/
Github:https://github.com/tower1229/AJAX-Cache
前端路上原創(chuàng)技術(shù)文章,轉(zhuǎn)載請注明出處:http://refined-x.com/2018/03/07/AJAX-Cache/
對文章內(nèi)容有任何疑問歡迎留言討論,或者掃描下方二維碼加入“前端路上-知識星球”付費提問。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/93242.html
摘要:分享一些超好用插件,打造一個不一樣的瀏覽器編輯器。一谷歌瀏覽器插件谷歌訪問助手強烈推薦一鍵安裝,無需其他配置,即可訪問谷歌。谷歌瀏覽器是很耗內(nèi)存的,該插件會自動掛起長時間未使用的網(wǎng)頁,來釋放系統(tǒng)資源。 showImg(https://segmentfault.com/img/remote/1460000014011338); 分享一些超好用插件,打造一個不一樣的 GitHub、瀏覽器、...
摘要:老姚淺談怎么學(xué)鑒于時不時,有同學(xué)私信問我老姚,下同怎么學(xué)前端的問題。擼碼聽歌,全局控制。 淺析用 js 解析 xml 的方法 由于項目上需要解析 xml,于是各種百度,然后自己總結(jié)了下各個主流瀏覽器解析 xml 的方法,只能是很淺顯的知道他的用法,但是還沒有深層次的研究。 裝 X - 建立自己的斗圖網(wǎng)站庫 之前加過一個斗圖群,看到很多經(jīng)典的表情,然后就收藏到了 QQ, 迫于本屌絲開不起...
摘要:今天就來跟大家分享一下工作中用到的幾款插件。是一款功能強大的網(wǎng)頁調(diào)試與發(fā)送網(wǎng)頁請求的插件。俗稱油猴子,是一款功能非常強大的插件,他包含方便的腳本管理腳本概覽設(shè)置多樣性腳本自動更新安全兼容性同步編輯器語法檢查快速開發(fā)卸載等功能。 ‘工欲善其事,必先利其器’。優(yōu)秀的開發(fā)者不僅體現(xiàn)在其在技術(shù)方面的精通,還體現(xiàn)在其對各種開發(fā)工具的充分了解與使用,這會讓其開發(fā)效率事半功倍。作為一個前端開發(fā)者,平...
閱讀 3451·2019-08-30 10:54
閱讀 3147·2019-08-29 16:38
閱讀 2166·2019-08-26 14:06
閱讀 1512·2019-08-23 15:39
閱讀 3034·2019-08-23 15:37
閱讀 2882·2019-08-23 13:50
閱讀 3190·2019-08-22 17:14
閱讀 2374·2019-08-22 15:44