js更新緩存

    在訪問量比較大的系統中,我們需要將一些靜態的文件在客戶端緩存,以減少下載的流量,從而加快客戶端訪問的速度。但是緩存會帶來一個問題,就是如何在服務端更新完文件之後,客戶端能夠及時得到更新。
解決思路:
1. 在一個配置文件中維護js文件map;
2. 在頁面中通過js map的key來動態加載js文件;
3. 在js文件做出變動之後,只要修改相應js的版本號
實例:
1. 在一個配置文件(config.js)中維護js文件map(注意:config.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文件; 

<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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章