關於css js文件緩存問題


什么情況下,要禁止靜態文件緩存:
1、經常可能要改動的 js, css.
比如一個js文件引用如下
<script src="test.js"></script>

后來進行了test.js文件的修改
在這種情況下如果以前用戶瀏覽過此頁面,那么他的瀏覽器自動緩存了 test.js
當他瀏覽新版本的時候,因為使用的是 緩存js,這樣將導致腳本出錯。

解決方法探討:
因為css,js 是通過 <script src=....> 這種方式加載的,所以,很難使用 asp 的那種服務器端禁止緩存的辦法。也很難使用ajax的通過設置 http請求頭的辦法禁止使用緩存。

解決方法

1、隨機數法

方法一:
document.write( " <script src='test.js?rnd= " + Math.random() + " '></s " + " cript> " )
方法二:
var js = document.createElement( " script " )
js.src = " test.js " + Math.random()
document.body.appendChild(js)
這樣采用隨機數的話, js文件將永遠得不到緩存,每次都必須重新從服務器加載,即使沒有任何更改。
大家如果經常上國外網站的話,可以看到他們通常采用這樣的方式來解決:
<script src="test.js?ver=113"></script>
其中 ver=113 的 113就是版本號

這樣真正做到了應該緩存的時候緩存靜態文件,當版本有更新的時候從獲取最新的版本,並更新緩存。
對於圖像 <img src="test.jps?ver=版本號"> 來有效利用和更新緩存.


免責聲明!

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



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