禁止js文件緩存的代碼
更新時(shí)間:2010年04月09日 13:16:55 作者:
禁止js文件緩存問(wèn)題是我一直遇到的大問(wèn)題,終于找到了一個(gè)比較好的辦法
如下:
1、在你引用JS文件的地方加上,如下:
//09年08月14日修改
var now=new Date();
var number = now.getYear().toString()+now.getMonth().toString()+now.getDate().toString()+now.getHours().toString()+now.getMinutes().toString()+now.getSeconds().toString();
document.write("\<script language=\"javascript\" type=\"text/javascript\" src=\"js/YearReportLuRu.js?"+number+"\"><\/script\>");
//alert("\<script language=\"javascript\" type=\"text/javascript\" src=\"js/YearReportLuRu.js?"+number+"\"><\/script\>");//測(cè)試
類(lèi)似這種形式:js/YearReportLuRu.js?20100408154456,這樣瀏覽器就會(huì)以為每次引用的js文件都是不同的,當(dāng)然我們的YearReportLuRu.js對(duì)后面的動(dòng)態(tài)數(shù)并不進(jìn)行處理。
2、就是在客戶端頁(yè)面文件頭加上:
<%--不進(jìn)行緩存設(shè)置--%>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache,must-revalidate" />
<meta http-equiv="expires" content="Wed,26 Feb 1997 08:21:57 GMT" />
服務(wù)器端加上:
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
這種辦法我在程序中應(yīng)用過(guò),但是有些用戶還是存在緩存現(xiàn)象,個(gè)人覺(jué)得還沒(méi)最終解決。
3、還有別的辦法,在此匯總下,我本人沒(méi)用過(guò),只是網(wǎng)上找到的,如下:
需要服務(wù)器上設(shè)置允許緩存,這樣客戶端才會(huì)根據(jù)客戶端的設(shè)置來(lái)緩存一些靜態(tài)文件(如:js、css、圖片)。
在IIS里,可以在站點(diǎn)屬性的“HTTP頭”里設(shè)置“啟用內(nèi)容過(guò)期”,來(lái)控制客戶端緩存的時(shí)間。(如下圖)
這樣HTTP返回的HTTP頭是304,啟用緩存可以大大提高用戶體驗(yàn),另外也建議啟用http壓縮,來(lái)優(yōu)化網(wǎng)站。

此方法是設(shè)置在WEB發(fā)布服務(wù)器上。
總結(jié):對(duì)于靜態(tài)文件用IIS或其它的WEB SERVER都可以做到,緩存客戶端是IE或其它客戶端的機(jī)制問(wèn)題.
大眾用戶還是不會(huì)沒(méi)事清掉客戶端的cache,所以我們可以利用程序來(lái)控制緩存問(wèn)題。
1、在你引用JS文件的地方加上,如下:
復(fù)制代碼 代碼如下:
//09年08月14日修改
var now=new Date();
var number = now.getYear().toString()+now.getMonth().toString()+now.getDate().toString()+now.getHours().toString()+now.getMinutes().toString()+now.getSeconds().toString();
document.write("\<script language=\"javascript\" type=\"text/javascript\" src=\"js/YearReportLuRu.js?"+number+"\"><\/script\>");
//alert("\<script language=\"javascript\" type=\"text/javascript\" src=\"js/YearReportLuRu.js?"+number+"\"><\/script\>");//測(cè)試
類(lèi)似這種形式:js/YearReportLuRu.js?20100408154456,這樣瀏覽器就會(huì)以為每次引用的js文件都是不同的,當(dāng)然我們的YearReportLuRu.js對(duì)后面的動(dòng)態(tài)數(shù)并不進(jìn)行處理。
2、就是在客戶端頁(yè)面文件頭加上:
復(fù)制代碼 代碼如下:
<%--不進(jìn)行緩存設(shè)置--%>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache,must-revalidate" />
<meta http-equiv="expires" content="Wed,26 Feb 1997 08:21:57 GMT" />
服務(wù)器端加上:
復(fù)制代碼 代碼如下:
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
這種辦法我在程序中應(yīng)用過(guò),但是有些用戶還是存在緩存現(xiàn)象,個(gè)人覺(jué)得還沒(méi)最終解決。
3、還有別的辦法,在此匯總下,我本人沒(méi)用過(guò),只是網(wǎng)上找到的,如下:
需要服務(wù)器上設(shè)置允許緩存,這樣客戶端才會(huì)根據(jù)客戶端的設(shè)置來(lái)緩存一些靜態(tài)文件(如:js、css、圖片)。
在IIS里,可以在站點(diǎn)屬性的“HTTP頭”里設(shè)置“啟用內(nèi)容過(guò)期”,來(lái)控制客戶端緩存的時(shí)間。(如下圖)
這樣HTTP返回的HTTP頭是304,啟用緩存可以大大提高用戶體驗(yàn),另外也建議啟用http壓縮,來(lái)優(yōu)化網(wǎng)站。

此方法是設(shè)置在WEB發(fā)布服務(wù)器上。
總結(jié):對(duì)于靜態(tài)文件用IIS或其它的WEB SERVER都可以做到,緩存客戶端是IE或其它客戶端的機(jī)制問(wèn)題.
大眾用戶還是不會(huì)沒(méi)事清掉客戶端的cache,所以我們可以利用程序來(lái)控制緩存問(wèn)題。
您可能感興趣的文章:
- JS localStorage實(shí)現(xiàn)本地緩存的方法
- 讓html頁(yè)面不緩存js的實(shí)現(xiàn)方法
- JS清除IE瀏覽器緩存的方法
- 高性能WEB開(kāi)發(fā) JS、CSS的合并、壓縮、緩存管理
- js 設(shè)置緩存及獲取設(shè)置的緩存
- JSP頁(yè)面緩存cache技術(shù)--瀏覽器緩存介紹及實(shí)現(xiàn)方法
- js、css、img等瀏覽器緩存問(wèn)題的2種解決方案
- Js 代碼中,ajax請(qǐng)求地址后加隨機(jī)數(shù)防止瀏覽器緩存的原因
- 詳解AngularJS中$http緩存以及處理多個(gè)$http請(qǐng)求的方法
- JS實(shí)現(xiàn)前端緩存的方法
相關(guān)文章
JavaScript實(shí)現(xiàn)統(tǒng)計(jì)文本框Textarea字?jǐn)?shù)增強(qiáng)用戶體驗(yàn)
現(xiàn)在流行的Twitter等微博客網(wǎng)站,有一個(gè)很好的用戶體驗(yàn),就是在文本框中輸入文字的時(shí)候,會(huì)自動(dòng)統(tǒng)計(jì)輸入的字符,并顯示用戶還能輸入的字符,在限制了140個(gè)字的微博客中,這樣的小提示可以很好的增強(qiáng)用戶體驗(yàn),本文也嘗試著實(shí)現(xiàn)一下2012-12-12一文教你如何像導(dǎo)入JS模塊一樣導(dǎo)入CSS
HTML中通過(guò)使用css可以讓網(wǎng)頁(yè)的美觀效果更進(jìn)一步,下面這篇文章主要給大家介紹了如何像導(dǎo)入JS模塊一樣導(dǎo)入CSS的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下2021-09-09Ajax使用原生態(tài)JS驗(yàn)證用戶名是否存在
這篇文章主要為大家詳細(xì)介紹了Ajax使用原生態(tài)JS驗(yàn)證用戶名是否存在的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09layui當(dāng)點(diǎn)擊文本框時(shí)彈出選擇框,顯示選擇內(nèi)容的例子
今天小編就為大家分享一篇layui當(dāng)點(diǎn)擊文本框時(shí)彈出選擇框,顯示選擇內(nèi)容的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09H5頁(yè)面跳轉(zhuǎn)小程序的3種實(shí)現(xiàn)方式
這篇文章主要給大家介紹了關(guān)于H5頁(yè)面跳轉(zhuǎn)小程序的3種實(shí)現(xiàn)方式,說(shuō)出來(lái)你可能不信,每位商家?guī)缀醵紩?huì)h5轉(zhuǎn)跳到小程序、H5轉(zhuǎn)跳至小程序的應(yīng)用范圍十分廣闊,需要的朋友可以參考下2023-08-08javascript的indexOf忽略大小寫(xiě)的方法
javascript 中 indexOf 是嚴(yán)格區(qū)分大小寫(xiě)的 如何才能忽略大小寫(xiě)呢?2008-08-08javaScript實(shí)現(xiàn)網(wǎng)頁(yè)版的彈球游戲
這篇文章主要為大家詳細(xì)介紹了javaScript實(shí)現(xiàn)網(wǎng)頁(yè)版的彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07