AJAX的緩存是由瀏覽器維持的,對于發(fā)向服務(wù)器的某個url,ajax僅在第一次請求時與服務(wù)器交互信息,之后的請求中,ajax不再向服務(wù)器提交請求,而是直接從緩存中提取數(shù)據(jù)。
有些情況下,我們需要每一次都從服務(wù)器得到更新后數(shù)據(jù)。思路是讓每次請求的url都不同,而又不影響正常應(yīng)用:在url之后加入隨機內(nèi)容。
e.g.
url=url+"&"+Math.random();
Key points:
1.每次請求的url都不一樣(ajax的緩存便不起作用)
2.不影響正常應(yīng)用(最基本的)
這里我們由兩條結(jié)論:
1:Ajax的緩存和HTTP的緩存是一樣的
現(xiàn)代瀏覽器的HTTP和緩存機制比Ajax的XMLHttpRequest對象要差很多,所以它不認識也不關(guān)心Ajax請求.它僅僅是遵循普通的HTTP緩存規(guī)則,通過服務(wù)器返回的響應(yīng)頭來進行緩存.
如果你已經(jīng)對 HTTP緩存 有了解,那么你可以把HTTP緩存的知識用對Ajax緩存的理解上. 他們只有一點不同的,就是設(shè)置響應(yīng)頭的方式會和普通文件不一樣.
下面這些響應(yīng)頭可以讓你的Ajax可緩存:
Expires: 這一項應(yīng)該被設(shè)置成未來的某個合適的時間點,時間點的設(shè)置取決于內(nèi)容變動的頻繁程度.舉個栗子,如果請求的是個庫存數(shù)量,那么Expires的值可以是10秒以后.如果請求的是一個相片,那么Expires的值就可以久一點,因為它不會經(jīng)常變動.Expires頭可以讓瀏覽器在一段時間內(nèi)重用本地緩存數(shù)據(jù),從而避免任何不必要的與服務(wù)器數(shù)據(jù)交互.
Last-Modified: 設(shè)置這一項是一個很好的選擇,通過它,瀏覽器在發(fā)送條件性GET請求的時候會使用請求頭里的 If-Modified-Since 來檢查本地緩存的內(nèi)容.如果數(shù)據(jù)不需要更新,服務(wù)器會返回304響應(yīng)狀態(tài).
Cache-Control: 在合適的情況下,這個值應(yīng)該被設(shè)置為 Public ,這樣所有的中間代理和緩存都可以被保存并且與其他用戶共享內(nèi)容.在火狐里,它還支持HTTPS請求的緩存
當然,如果你使用POST方式發(fā)送Ajax是不能緩存的,因為POST請求永遠不會被緩存.如果你的Ajax請求會產(chǎn)生其他作用(比如銀行賬戶之間的轉(zhuǎn)賬),請使用POST請求.
我們設(shè)置了一個demo(這個demo已經(jīng)不能看了
主站蜘蛛池模板:
一区在线免费视频
|
国产深夜福利视频在线播放
|
国产一级午夜
|
久久久久亚洲国产精品
|
精品一区二区三区中文字幕
|
久久久久999
|
欧美顶级毛片在线播放小说
|
日产精品一区二区三区在线观看
|
免费的性爱视频
|
色婷婷一区二区三区
|
欧美一级毛片欧美一级成人毛片
|
亚洲免费视频大全
|
亚洲成人福利在线观看
|
国产乱一区二区三区视频
|
日韩美香港a一级毛片
|
欧美性色大片
|
超久久|
精品久久久久久久久久久下田
|
激情欧美在线
|
欧美一区二区三区久久精品视
|
国产98色在线
|
麻豆国产网站
|
欧美精品毛片
|
99精品视频一区二区三区
|
www.99热精品
|
久久草草影视免费网
|
日本欧美在线播放
|
aa国产视频一区二区
|
久久精品日韩一区
|
男女羞羞视频在线观看免费
|
久久久久久久久久久综合
|
蜜桃网站在线
|
中文在线观看免费视频
|
成码无人av片在线观看网站
|
最新欧美精品一区二区三区
|
欧美淫视频|
国产精品久久久久久久不卡
|
欧美视频不卡
|
性生活香蕉视频
|
亚洲第一页在线观看
|
日韩av有码在线
|