天天看點

reload()會導緻304請求用戶端無法Cache

最近發現我們項目中的一個使用者體驗上的問題,這個問題導緻我們頁面在翻頁的速度非常慢,嚴重影響使用者體驗,當使用者翻下一頁時,css和js,圖檔等等,全是304狀态,304表示去伺服器上請求過了,發現沒更新,是以不下載下傳檔案,但還是必須經過伺服器請求

reload()會導緻304請求用戶端無法Cache

經過對比分析發現window.location.reload()這個方法重新整理頁面,這個方法其實相當于使用者按浏覽器的F5,在很多浏覽器下,按F5會發送no-cache請求頭,這導緻浏覽器無法使用本機的緩存,必須去連接配接伺服器。是以我現在改掉了這個方法,換成直接設定location的值即:window.location=window.location.pathname;。經過修改後速度明顯成倍提升

reload()會導緻304請求用戶端無法Cache

結論:在js重新整理頁面時請不是萬不得已的情況不要用reload()方法,請用window.location=window.location.pathname;代替。