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