亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

深入理解瀏覽器的各種刷新規則

2024-07-21 02:02:50
字體:
來源:轉載
供稿:網友

PC瀏覽器的刷新方式我們常用的有大概四種:

    1. url+enter或者a標簽的超鏈接點擊

    2. F5刷新/ctrl+R刷新/按鈕刷新

    3. ctrl+F5刷新/ctrl+shift+R刷新

    4. 后退刷新

WISE瀏覽器的刷新方式則一般是三種:

    1. url+enter或者a標簽的超鏈接點擊

    2. 按鈕刷新

    3. 后退刷新

他們各有不同,不同瀏覽器下的效果也不一樣,以一個帶iframe的測試頁面為例,我們測試的前提是允許頁面緩存,下邊我們一個一個講:

PC瀏覽器

1. url+enter或者a標簽的超鏈接點擊

若是你曾訪問過此網站,那么這種刷新方式是從緩存中直接提取數據,請求并沒有到服務端,當然前提是這個網站設置了有效緩存。


如上是chrome瀏覽器下的html頁面的請求,請求參數中帶上了If-None-Match(有些情況下可能還會有If-Modified-Since參數),服務器返回304,說明這個請求訪問了服務器,并進行了緩存驗證。

     If-Modified-Since:如果請求的部分在指定時間之后被修改則請求成功,未被修改則返回304代碼,對應響應頭 Last-Modified

    If-None-Match:如果內容未改變返回304代碼,參數為服務器先前發送的Etag,與服務器回應的Etag比較判斷是否改變,對應響應頭 Etag

再看下iframe的中的請求


首先說明,iframe中src屬性中的請求本身不會干擾。

可以看到iframe中的請求也和外部請求一樣帶上了If-None-Match參數。

再看圖片資源的請求,我們事先給圖片設置了max-age=2628000:


可以看到圖片的請求頭這次沒有If-None-Match參數,而是帶上了Cache-Control:max-age=0,狀態碼是200 from cache,說明這次請求沒有訪問服務器,而直接是cache返回的響應。

事實證明:當本地有緩存,但你沒有給它設置有效期或者已經過期時,回車這種刷新方法會主動去訪問服務器判斷緩存是否需要更新,而如果設置了有效期并且沒過期,則這種刷新方法會直接從cache中請求資源。

如上是火狐下的firebug,可以看到html頁面請求返回304,并且請求頭中帶上了If-None-Match參數,這和chrome一樣。
而iframe中的請求也和chrome沒有區別,圖片由于直接從cache中加載,所以火狐直接不顯示了。

「總結」:url+enter或者a標簽的超鏈接點擊這種刷新方法chrome和火狐表現一致,對于請求還在有效期內的緩存資源會直接從緩存中返回,否則則會帶上If-None-Match/If-None-Match參數訪問服務器判斷是否需要更新緩存。

2. F5刷新/ctrl+R刷新


首先看chrome,chrome下這次所有資源都表現一致,包括iframe中的請求以及之前提到的設置了max-age的圖片資源。

上圖是html文件的請求,

這次的請求頭多了cache-control: max-age=0,

服務器會根據Etag或者Last-Modified來判斷緩存是否需要更新,如果不需要更新,就會返回304告訴瀏覽器它的緩存還能用,并

給緩存續期,需要更新的話就返回最新的數據和新的Etag/Last-Modified,并且更新瀏覽器緩存。

然后看火狐,

對于html資源以及設置了max-age的圖片資源的請求,火狐和chrome的效果是一致的,但是iframe中 的資源請求則有些不同,相比較chrome,缺少了cache-control: max-age=0參數。

3. ctrl+F5刷新

這次火狐和chrome的所有請求都是一致的,所以只看chrome就行了。

這次刷新請求沒有方式2中的If-Modified-Since和If-None-Match參數,cache-control的數值變成:no-cache,并且增加了Pragma: no-cache。

后兩個參數意義相同,只是兼容http版本不同。

no-cache使這次請求強制訪問服務器,并進行驗證,但由于這次沒有If-Modified-Since和If-None-Match參數,服務器無法驗證,所以服務器直接返回了數據和新的Last-Modified以及Etag,狀態碼200OK

4.后退刷新

后退刷新主要指的是那些設置了頁面強行不緩存的網站,chrome在這里比較符合標準,從一個當前頁面跳轉到另一個頁面,再回退回來時,頁面上的資源都是直接請求的緩存:

如上圖是chrome瀏覽器下做的測試。

在后退這一點上,火狐有不同的做法:

如上圖,會發現有個新的名詞:BFCache

全稱是back-forward cache,也就是“往返緩存”,為了提高用戶使用瀏覽器的“后退”和“前進”按鈕時加快頁面的轉換速度。

這個緩存中不僅保存著頁面數據,還保存了DOM和JavaScript的狀態;實際上是將整個頁面都保存在了內存里。也就是說“后退”不光意味著html/js/css/接口等動靜態資源不會重新請求,連JS也不會重新執行。

圖中不全都是form BFCache,是因為我在測試頁面中加入了一個iframe,事實證明iframe不會被火狐的"往返機制"所緩存,它依然遵循url+enter刷新中的請求方式。

這一點在MDN中也有明確指出:

如果頁面位于bfcache中,那么再次打開該頁面就不會觸發load事件。

盡管由于內存中保存了整個頁面的狀態,不觸發load事件也不應該會導致什么問題,但為了更形象地說明bfcache的行為,Firefox還是提供了一些新事件。

pageshow

第一個事件就是pageshow,這個事件在頁面顯示時觸發,無論頁面是否來自bfcache。在重新加載頁面中,pageshow會在load事件觸發后觸發;而對于bfcache中的頁面,pageshow會在頁面狀態完全恢復的那一刻觸發。另外要注意的是,雖然這個事件的目標是document,但必須將其事件處理程序添加到window。

除了通常的屬性之外,pageshow事件的event對象還包含一個名為persisted的布爾值屬性。如果頁面中保存在了bfcache中,則這個屬性的值為true;否則,這個屬性的值為false。

你可以根據persisted來判斷是否是bfcache中的頁面觸發的pageshow事件。

pagehide

與pageshow事件對應的是pagehide事件,該事件會在瀏覽器卸載頁面的時候觸發,而且是在unload事件之前觸發。與pageshow事件一樣,pagehide在document上面觸發,但其事件處理程序必須要添加到Windows對象。這個事件的event對象也包含persisted屬性

總結

好了,以上就是這篇文章的全部內容了,wise瀏覽器的詳細介紹我們會在之后更新,感興趣的請繼續關注武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产欧美亚洲国产日韩mv天天看完整| 日韩**中文字幕毛片| 精品国产乱码久久久久久虫虫漫画| www欧美日韩| 欧美中文字幕视频在线观看| 日本中文字幕久久看| 国自产精品手机在线观看视频| 国a精品视频大全| 1769国产精品| 91精品啪aⅴ在线观看国产| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲成人av片在线观看| 这里只有精品在线观看| 岛国视频午夜一区免费在线观看| 亚洲伊人成综合成人网| 91亚洲一区精品| 亚洲最大福利视频网| 91在线直播亚洲| 91精品免费视频| 一本色道久久综合狠狠躁篇的优点| 中文日韩电影网站| 精品视频在线观看日韩| 视频在线观看一区二区| 日韩美女中文字幕| 久久影院免费观看| 91黑丝高跟在线| 亚洲国产精品久久久久| 国产成人综合精品在线| 久久久精品欧美| 久久久久国产精品www| 国模极品一区二区三区| 国产成人精品av在线| 国产精品国语对白| 精品一区二区三区四区| 欧美成人精品在线观看| 成人乱色短篇合集| 国产精品亚洲视频在线观看| 亚洲第一福利网站| 精品视频在线播放色网色视频| 欧美丰满老妇厨房牲生活| 欧美成人免费va影院高清| 97超级碰碰人国产在线观看| 色噜噜亚洲精品中文字幕| 最新日韩中文字幕| 美女国内精品自产拍在线播放| 午夜欧美不卡精品aaaaa| 日本一本a高清免费不卡| 国产成人一区二区三区小说| 亚洲精品久久久久久久久| 欧美激情国内偷拍| 中文字幕日韩专区| 色老头一区二区三区| 亚洲香蕉在线观看| 深夜福利亚洲导航| 97精品免费视频| 亚洲美女视频网站| 91免费看视频.| 成人性生交大片免费观看嘿嘿视频| 国产精品久久一| 色婷婷综合久久久久中文字幕1| 亚洲人午夜精品| 91在线中文字幕| 国产精品美女久久久久久免费| 在线午夜精品自拍| 精品国产一区二区三区久久久狼| 亚洲美女免费精品视频在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美精品在线看| 久久99精品久久久久久青青91| 91久久国产精品91久久性色| 成人精品在线观看| 亚洲欧美日韩图片| 精品女同一区二区三区在线播放| 欧美精品免费看| 国产视频精品在线| 久久久女女女女999久久| 欧美日韩一区二区在线播放| 亚洲国产精彩中文乱码av在线播放| 国产欧美日韩免费看aⅴ视频| 57pao成人国产永久免费| 成人在线国产精品| 亚洲精品日韩激情在线电影| 国产精品九九久久久久久久| 中文字幕少妇一区二区三区| 色综合导航网站| 亚洲欧美中文日韩在线v日本| 亚洲系列中文字幕| 成人免费在线视频网站| 国产欧洲精品视频| 国产精品成人免费视频| 亚洲综合精品伊人久久| 亚洲欧美国产精品va在线观看| 欧美国产中文字幕| 97视频免费在线观看| 精品高清一区二区三区| 欧美在线观看www| 欧美在线视频免费| 奇米一区二区三区四区久久| 久久九九国产精品怡红院| 亚洲va电影大全| 国产91精品高潮白浆喷水| 久久这里只有精品99| 国内精品久久久久| 日韩性生活视频| 亚洲天堂第一页| 亚洲国产成人精品一区二区| 国产在线精品播放| 日韩av资源在线播放| 国产999精品久久久| 亚洲精品av在线| 亚洲综合视频1区| 91精品视频网站| 国产精品99久久久久久久久久久久| 国外视频精品毛片| 亚洲综合av影视| 欧美大片在线免费观看| 91国语精品自产拍在线观看性色| 91系列在线观看| 久久国产一区二区三区| 欧美精品成人在线| 亚洲午夜色婷婷在线| 精品一区二区三区电影| 亚洲成av人乱码色午夜| 亚洲www视频| 精品无人区乱码1区2区3区在线| 九九热视频这里只有精品| 欧美亚洲日本网站| 性欧美xxxx视频在线观看| 永久免费精品影视网站| 国模极品一区二区三区| 欧美精品在线看| 精品日韩美女的视频高清| 中文字幕亚洲自拍| 亚洲精品永久免费精品| 久久久久久久国产精品视频| 久久伊人精品天天| 国产精品视频自拍| 日韩欧美视频一区二区三区| 亚洲图片在线综合| 日本欧美黄网站| 97视频com| 久久久久久香蕉网| 欧亚精品中文字幕| 国产精品一二三在线| 欧美极品在线播放| 岛国视频午夜一区免费在线观看| 亚洲电影免费观看高清完整版在线观看| 欧美性xxxxx| 国产欧美日韩中文字幕在线| 538国产精品视频一区二区| 日韩精品免费在线播放| 亚洲欧美制服中文字幕| 九九久久国产精品| 欧美精品久久久久a| 97久久精品人人澡人人爽缅北| 国色天香2019中文字幕在线观看| 88国产精品欧美一区二区三区| 国产一区二区三区中文| 日本伊人精品一区二区三区介绍| 国产成人小视频在线观看| 日韩小视频网址| 国产精品偷伦免费视频观看的| 国产美女久久精品香蕉69| 国产成人涩涩涩视频在线观看|