很多朋友都會碰到這樣的情況:如果我們頁面加載了js的話下次打開時也會是調用這個js緩存文件,但對於我們調試時是非常的不方便了,本文就來談論如何解決這一問題,下面一起來看看。
不緩存JS的方法其實挺簡單,CSS在某種條件下也可以如此使用;
先讓大家了解下不緩存的一個簡單的原理:
當瀏覽不同Url時,瀏覽器會自動將當前訪問的地址進行一次緩存;而第二次訪問時着調用緩存下來的頁面,從而達到頁面快速加載(頁面加載優化)的目的;
因此,我們可以給頁面后面設定個不同的值,讓頁面保持沒錯訪問的不同即可達到不緩存的目的了!
下面是個簡單的示例:
<script>
document.write("<script type='text/javascript' src='/js/test.js?"+Math.random();+"'></script>");
</script>
document.write("<script type='text/javascript' src='/js/test.js?"+Math.random();+"'></script>");
</script>
其他的類似,只需在地址后加上+Math.random()
注意:因為Math.random() 只能在Javascript 下起作用,故只能通過Javascript的調用才可以
最后加一個ajax也不讓緩存的方法
xmlHttp.open("GET", "ajax.asp?now=" + new Date().getTime(), true);
記得后面的now=" + new Date().getTime()是重點,需要帶參數的。
可以考慮引入js部分給js文件加入一個隨機數作為參數.
比如:
1
2
3
4
|
<script type=
"text/javascript"
src=
"/js/myjs.js"
></script>
// 修改為
<script type=
"text/javascript"
src=
"/js/myjs.js?randomId=<%=Math.random()%>"
></script>
|
注: 只是給個思路. 后面那個randomId=<%=Math.random()%>需要你自己考慮下.
可以是當前時間戳+一個隨機數字之類的.