麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

解析瀏覽器端的AJAX緩存機制

2019-11-20 09:38:14
字體:
供稿:網(wǎng)友

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有码在线 |