什么情況下,要禁止靜態文件緩存:
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=版本號"> 來有效利用和更新緩存.