Ajax的緩存機(jī)制和瀏覽器處理資源時(shí)的緩存機(jī)制是一樣的。
三條簡(jiǎn)單規(guī)則:
只要是URL相同的GET請(qǐng)求,瀏覽器會(huì)使用緩存(當(dāng)然還要看服務(wù)器的Cache-Control/Expires/Last-Modified/ETag頭的設(shè)置)。
只要是POST請(qǐng)求,瀏覽器都不會(huì)緩存。
Https的請(qǐng)求,瀏覽器不會(huì)緩存(絕大數(shù)情況如此,但是也有例外,據(jù)說FF瀏覽器是例外)。
補(bǔ)充:
在URL中拼入隨機(jī)的查詢字符串可以使瀏覽器認(rèn)為這是一個(gè)新的請(qǐng)求,從而不使用緩存。
在Ajax的請(qǐng)求中設(shè)置Http頭: If-Modified-Since:0,告訴服務(wù)器要新的內(nèi)容。
補(bǔ)充說明:
一般情況下,用戶手動(dòng)觸發(fā)瀏覽器刷新(windows:F5 MacOS:command+R),瀏覽器會(huì)忽略資源的Cache-Control/Expires頭的設(shè)置,而去連接服務(wù)器。無論是頁面刷新還是Ajax刷新都是如此。但我聽說,IE瀏覽器不遵循這個(gè)規(guī)則。也不知道是不是所有版本的IE瀏覽器都是這樣。如果有哪位大俠清楚這個(gè),不吝賜教。
您可能感興趣的文章:- 解析瀏覽器端的AJAX緩存機(jī)制
- 獲取IE瀏覽器Cookie信息的方法
- JavaScript自定義瀏覽器滾動(dòng)條兼容IE、 火狐和chrome
- 完美解決IE9瀏覽器出現(xiàn)的對(duì)象未定義問題
- Javascript在IE和Firefox瀏覽器常見兼容性問題總結(jié)
- python3實(shí)現(xiàn)讀取chrome瀏覽器cookie
- bootstrap3 兼容IE8瀏覽器!
- 淺析IE瀏覽器關(guān)于ajax的緩存機(jī)制