欧美激情一区二区三区国产-免费无毒A网站在线观看-久久久久久久国产视频-丰满人妻中文字幕乱码网站

歡迎訪(fǎng)問(wèn)山東奧訊物聯(lián)網(wǎng)科技股份有限公司官方網(wǎng)站!服務(wù)熱線(xiàn)電話(huà):0631-5961319 | 18660385587

新聞中心

news center

網(wǎng)站開(kāi)發(fā)中如何保證HTML頁(yè)面后退不會(huì )被緩存


微信的登錄,掃二維碼碼之后,可以通過(guò)微信給的code去獲取用戶(hù)的微信信息,顯示出對應的帳號列表(列表頁(yè)),選擇登錄之后跳轉至相應的頁(yè)面。

18.jpg

測試的時(shí)候發(fā)現,如果在跳轉后的頁(yè)面,點(diǎn)擊瀏覽器返回,還是會(huì )顯示登錄帳號列表。這時(shí)候登錄是會(huì )失敗的,因為已經(jīng)登錄過(guò),沒(méi)有了半登錄態(tài),應該需要重新掃碼登錄才行。

所以列表頁(yè)是完全不能被緩存的,而瀏覽器的前進(jìn)后退,默認會(huì )從緩存里讀取,完全不發(fā)請求。

打開(kāi)Chrome的開(kāi)發(fā)者工具調試的時(shí)候發(fā)現,如果勾選Network的Disable cache,瀏覽器后退的時(shí)候,結果頁(yè)不會(huì )被緩存。如果不勾選則緩存頁(yè)面。用戶(hù)是不會(huì )主動(dòng)開(kāi)啟這個(gè)選項的,所以需要通過(guò)Headers控制頁(yè)面的緩存。

Request

勾選與不勾選Disable cache的差別在于

Request Headers的Cache是否會(huì )被設置為Cache-Control: no-cache、Pragma: no-cache

Response

有設置Cache為Cache-Control: no-cache, must-revalidate。但是為什么頁(yè)面還是會(huì )緩存了呢?

而Request為瀏覽器發(fā)送,不能進(jìn)行設置,只能從Response著(zhù)手。

解決方案為設置Cache為Cache-Control: no-store, no-cache, must-revalidate

no-cache與no-store

“no-cache”表示必須先與服務(wù)器確認返回的響應是否發(fā)生了變化,然后才能使用該響應來(lái)滿(mǎn)足后續對同一網(wǎng)址的請求。因此,如果存在合適的驗證令牌 (ETag),no-cache 會(huì )發(fā)起往返通信來(lái)驗證緩存的響應,但如果資源未發(fā)生變化,則可避免下載。

相比之下,“no-store”則要簡(jiǎn)單得多。它直接禁止瀏覽器以及所有中間緩存存儲任何版本的返回響應,例如,包含個(gè)人隱私數據或銀行業(yè)務(wù)數據的響應。每次用戶(hù)請求該資產(chǎn)時(shí),都會(huì )向服務(wù)器發(fā)送請求,并下載完整的響應。

再次觀(guān)察頁(yè)面的請求,發(fā)現雖然設置了no-cache,但是沒(méi)有設置ETag可以進(jìn)行校驗,最終還是從緩存里讀取。

關(guān)于HTTP,還是需要不斷的學(xué)習,才能深入理解并使用。



掃碼關(guān)注奧訊

COPYRIGHT ? 2019 - 山東奧訊物聯(lián)網(wǎng)科技股份有限公司 | ALL RIGHTS RESERVED 魯ICP備18031712號-1 網(wǎng)站地圖      魯公網(wǎng)安備37100002001242號