国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
再論怎么有效利用瀏覽器緩存之------怎么避免瀏覽器緩存靜態(tài)文件. --ArtWind‘...
對(duì)于動(dòng)態(tài)文件,比如  index.asp?id=...    或者  index.aspx?id=...  相信有經(jīng)驗(yàn)的程序員都知道怎樣禁止瀏覽器緩存數(shù)據(jù)了.
但是對(duì)于靜態(tài)文件(css,jpg,gif等等),  在什么場(chǎng)合下面我們需要禁止瀏覽器緩存他們,怎么做?

 

本文討論的主題是如何防緩存,  尤其是如何防止靜態(tài)文件被緩存..


在    RE:對(duì)博客園URL的一些調(diào)整建議,  二級(jí)域名不利于客戶端瀏覽器緩存  一文中,我提到了怎么最大化的
利用瀏覽器緩存功能,來(lái)提高客戶端瀏覽速度,  減輕服務(wù)器負(fù)擔(dān)的.

但是事物總是一分為二的,并不是所有的場(chǎng)合都要使用緩存的.  有時(shí)候我們的數(shù)據(jù)被緩存了反而會(huì)給我們帶來(lái)麻煩.

對(duì)于動(dòng)態(tài)數(shù)據(jù)(從數(shù)據(jù)庫(kù)讀取生成的那些),我們可以通過(guò)以下方法來(lái)禁止瀏覽器緩存。

‘a(chǎn)sp  為例  禁止緩存

Response.Buffer  =  True 
Response.ExpiresAbsolute  =  Now()  -  1 
Response.Expires  =  0 
Response.CacheControl  =  "no-cache" 
Response.AddHeader  "Pragma",  "No-Cache" 
對(duì)于Ajax  的請(qǐng)求(不管是靜態(tài)數(shù)據(jù)還是動(dòng)態(tài)數(shù)據(jù)):

//以下三種方法使用其中任何一種方法都可以
xmlhttp.setRequestHeader("Cache-Control","no-cache");   
//或者
xmlhttp.setRequestHeader("If-Modified-Since","0");
//或者
xmlhttp.Open(url+‘?rnd=‘+Math.random(),....)

如果使用  prototype.js    ,  用類(lèi)似這樣的代碼 
new  Ajax.Request(url,{method:"get",requestHeaders:["Cache-Control","no-cache"]})
或者
new  Ajax.Request(url,{method:"get",requestHeaders:["If-Modified-Since","0"]})
 

什么情況下,要禁止靜態(tài)文件緩存:
1、經(jīng)??赡芤膭?dòng)的  js,  css.
              比如  一個(gè)html  文件,  test.html  在  1.0版本中??赡苁沁@樣
          <script  src="common.js"></script>
          修改后    v1.1版本:
  <script  src="common.js"></script>
  <script  src="foo.js"></script>
      新增加了一個(gè)foo.js    同時(shí),也改動(dòng)了common.js  ,  在common.js  中定義了新的類(lèi),并在foo.js  中使用了common.js.   

在這種情況下如果以前用戶瀏覽過(guò)  1.0版本的  html  文件,那么他的瀏覽器自動(dòng)緩存了  common.js
當(dāng)他瀏覽新版本的時(shí)候,因?yàn)槭褂玫氖?nbsp; v1.1的  foo.js  和  v1.0的  common.js  ,這樣將導(dǎo)致腳本出錯(cuò)。


解決方法探討:
    因?yàn)閏ss,js  是通過(guò)  <script  src=....>  這種方式加載的,所以,很難使用  asp  的那種服務(wù)器端禁止緩存的辦法。也很難使用ajax的通過(guò)設(shè)置  http請(qǐng)求頭的辦法禁止使用緩存。

看來(lái)隨機(jī)數(shù)是個(gè)好辦法。

//方法一:
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)

但是,如果采用隨機(jī)數(shù)的話,  js文件將永遠(yuǎn)得不到緩存,每次都必須重新從服務(wù)器加載,即使沒(méi)有任何更改。
大家如果經(jīng)常上國(guó)外網(wǎng)站的話,可以看到他們通常采用這樣的方式來(lái)解決:
<script  src="test.js?ver=113"></script>
其中  ver=113  的  113就是版本號(hào),一般都是采用  CVS  或其他工具生成的開(kāi)發(fā)版本號(hào)。

這樣真正做到了應(yīng)該緩存的時(shí)候緩存靜態(tài)文件,當(dāng)版本有更新的時(shí)候從獲取最新的版本,并更新緩存。
對(duì)于圖像  <img  src="test.jps?ver=在CVS的版本號(hào)">  來(lái)有效利用和更新緩存.


唉,現(xiàn)在在CSDN的Web版,不知道有多少人在重復(fù)問(wèn)著同一個(gè)問(wèn)題。“怎么通過(guò)程序刪除清空客戶端的瀏覽器緩存”.........

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
js文件被瀏覽器緩存的思考
解決瀏覽器加載js文件有緩存的方法
優(yōu)化網(wǎng)站性能規(guī)則_前端性能優(yōu)化策略【網(wǎng)絡(luò)加載、頁(yè)面渲染】
怎樣才能更好的處理JS和CSS緩存的問(wèn)題
伯樂(lè)在線博客
基于HTML5 構(gòu)建的 Web端現(xiàn)代化PDF在線預(yù)覽插件——PDF.js
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服