[轉]設定version 更新js緩存


http://zhenggm.iteye.com/blog/680600

 

遇到的問題:        
在訪問量比較大的系統中,我們需要將一些靜態的文件在客戶端緩存,以減少下載的流量,從而加快客戶端訪問的速度。但是緩存會帶來一個問題,就是如何在服務端更新完文件之后,客戶端能夠及時得到更新。
 
解決思路:
1. 在一個配置文件中維護js文件map;
2. 在頁面中通過js map的key來動態加載js文件;
3. 在js文件做出變動之后,只要修改相應js的版本號
 
實例: 1. 在一個配置文件(config.js)中維護js文件map(注意:config.js是不緩存的,每次更新)
Js代碼  
//js Map
var JSHash = {
index: [{url:"http://xxxx.js", version: "1.0"}],
edit:  [{url:"http://xxxx.js", version: "2.0"}]
}
2. 在頁面中通過js map的key來動態加載js文件;
Html代碼
<script src=config.js></script>
<script>
loadJS("edit");
</script>
//根據傳入的key,動態生成js加載語句
function loadJS(sKey) {
        var node = JSHash[sKey];
        for(var i =0;i < node.length; i ++) {
                document.writeln('<script src="'+node[i].url+'?version='+node[i].version+'"><\/script>');
        }
}
//-->
</script>
             
3. 在js文件做出變動之后,只要修改相應js的版本號即可.這樣由於鏈接不一樣了,就會對這個變動的js進行重新下載。其他js由於鏈接不變,所以仍舊使用緩存中的js.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM