九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
淺談瀏覽器緩存
為什么使用瀏覽器緩存 緩存存在的內(nèi)容 緩存協(xié)商 緩存協(xié)商的簡單演示 緩存相關(guān)的header 緩存相關(guān)header之間的關(guān)系 用戶的不同操作 用戶不同操作對應(yīng)瀏覽器的不同處理方式 測試環(huán)境與線上環(huán)境取js方式不同導(dǎo)致的問題
為什么使用本地緩存
對于一些比較少變化的文件,如js、css等,可以在第一次請求之后將這些文件先放在本地,在下次再去請求這些文件的時候就可以不用再去請求,直接使用本地的就可以了,直接消滅請求。這是最好的減少帶寬占用、降低服務(wù)器壓力的方法,同時也可以最大限度的提升頁面的顯示速度(直接本地?。?。
查看緩存:
ie:Internet選項-設(shè)置-查看文件
Firefox:緩存采用二進制的方式存儲,查看可以在地址欄中輸入about:cache
緩存存在的問題
既然存在了本地,那么最大的問題就是一旦服務(wù)器的文件更新了,而瀏覽器還在使用本地的緩存,會造成服務(wù)器端的修改不能生效。
緩存協(xié)商
緩存的文件是由服務(wù)器生成,在本地保存,所以對緩存的使用必須要雙方配合才能達到最好的效果,這樣就引入了緩存協(xié)商。
緩存協(xié)商其實就是瀏覽器在請求某個文件的時候,服務(wù)器在返回時會在頭部加一些額外的信息,如這個文件在多長時間內(nèi)可以使用、文件的最后修改時間是什么等等,瀏覽器在下次再請求這個文件的就會根據(jù)之前服務(wù)器在頭部加入的額外信息來對應(yīng)的進行一些處理。
緩存協(xié)商的簡單演示
http://levit.china.alibaba.com/guarantee/listBuyerContract/list.htm
注釋:左側(cè)的是一個.htm的請求,右側(cè)是一個js的請求
注釋:在第二次請求的時候.js的請求頭信息中多出了紅框中的三個值
緩存相關(guān)的header
Cache-control常用值:
public 指示響應(yīng)數(shù)據(jù)可以被任何客戶端緩存 private 指示響應(yīng)數(shù)據(jù)可以被非共享緩存所緩存。這表明響應(yīng)的數(shù)據(jù)可以           被發(fā)送請求的瀏覽器緩存,而不能被中介所緩存 no-cache 指示響應(yīng)數(shù)據(jù)不能被任何接受響應(yīng)的客戶端所緩存 max-age 數(shù)據(jù)經(jīng)過max-age設(shè)置的秒數(shù)后就會失效,相當(dāng)于HTTP/1.0中的Expires頭。如果在一次響應(yīng)中同時設(shè)置了max-age和 Expires,那么max-age將具有較高的優(yōu)先級。
Cache-control
打開一個新頁面
在原始窗口中單擊 Enter 按鈕
按 F5 鍵刷新
單擊 Back 或 Forward 按鈕
public
瀏覽器呈現(xiàn)來自緩存的頁面
瀏覽器呈現(xiàn)來自緩存的頁面
瀏覽器重新發(fā)送請求到服務(wù)器
瀏覽器呈現(xiàn)來自緩存的頁面
private
瀏覽器重新發(fā)送請求到服務(wù)器
第一次,瀏覽器重新發(fā)送請求到服務(wù)器;此后,瀏覽器呈現(xiàn)來自緩存的頁面
瀏覽器重新發(fā)送請求到服務(wù)器
瀏覽器呈現(xiàn)來自緩存的頁面
no-cache
瀏覽器重新發(fā)送請求到服務(wù)器
瀏覽器重新發(fā)送請求到服務(wù)器
瀏覽器重新發(fā)送請求到服務(wù)器
瀏覽器重新發(fā)送請求到服務(wù)器
max-age=xxx
在 xxx 秒后,瀏覽器重新發(fā)送請求到服務(wù)器
在 xxx 秒后,瀏覽器重新發(fā)送請求到服務(wù)器
瀏覽器重新發(fā)送請求到服務(wù)器
在 xxx 秒后,瀏覽器重新發(fā)送請求到服務(wù)器
Last-modified:在瀏覽器第一次請求頁面的時候如果返回的header中有這一項的值,則在下次請求的頭信息中會加入if-modified-since這個值,服務(wù)器端取到這個值后去判斷和該文件的最后修改時間是否一樣,如果一樣,則直接返回304(not modified),通知瀏覽器可以使用本地緩存。
E-tag:在瀏覽器第一次請求頁面的時候如果返回的header中有這一項的值,則在下次請求的頭信息中會加入if-None-match這個值,服務(wù)器端取到這個值后去和這個文件生成的E-tag值進行對比,如果一樣,則直接返回304(not modified),通知瀏覽器可以使用本地緩存。Etag默認(rèn)生成規(guī)則是根據(jù)文件的inode、文件大小、文件修改時間,可以通過配置選擇其中的某幾項來生成、
Expires:過期時間,在這個時間之前,不會再去想服務(wù)器發(fā)任何請求,直接用本地緩存
緩存相關(guān)header的關(guān)系
Cache-control會覆蓋掉Expires的值,即如果同時存在cache-control:max-age=900和expires:******,則以cache-control的值為準(zhǔn)
Etag和last-modified的值同時存在的時候,last-modified的值失效,僅判斷Etag。
用戶的幾種不同操作
當(dāng)用戶打開一個新的瀏覽器窗口時的失效操作提高訪問速度,提升用戶的體驗
當(dāng)用戶在原始瀏覽器窗口中單擊 Enter 按鈕時的失效操作
當(dāng)用戶單擊 Back 或 Forward 按鈕時的失效操作
當(dāng)用戶按 F5 鍵刷新頁面時的失效操作
用戶按ctrl+F5
不同的操作對應(yīng)的不同請求
下面截圖的情況為firefox中請求http://levit.china.alibaba.com/guarantee/listBuyerContract/list.htm這個網(wǎng)址的結(jié)果。
新打開瀏覽器窗口:未過期的緩存直接使用本地的,不向服務(wù)器發(fā)送請求
在地址欄單擊回車:未過期的緩存直接使用本地的,不向服務(wù)器發(fā)送請求
(注:在ie中在地址欄單擊回車行為與下面的回退一樣,全部使用本地緩存,不論過不過期)
回退:不論緩存由沒有過期,都使用本地緩存??梢钥闯鰜肀壬厦嫔倭藘蓚€請求,原因是上圖中標(biāo)紅的請求的兩個文件的緩存都已過期,但在回退時不管是否已過期,直接使用緩存。(瀏覽器默認(rèn)對所有的文件都進行緩存,是否使用另說)。剩下的五個請求是因為這幾個請求攜帶的參數(shù)都有一個每次都不一樣的,導(dǎo)致本地沒有與其對應(yīng)的緩存(例如參數(shù)中有系統(tǒng)本地時間)。
F5:所有的文件都會發(fā)送請求,有緩存的進行緩存協(xié)商,沒有修改的返回304使用本地緩存。
Ctrl+F5:所有文件都會發(fā)送請求,并且不進行緩存協(xié)商(cache-control:no-cache),每個文件重新返回(200)
此次整理的正文到這里就結(jié)束了,下面列出的是可能比較多關(guān)注的點:
1.       Cache-control的值覆蓋其他的設(shè)置
2.       Etag和last-modified共存的時候以Etag為準(zhǔn)
3.       在F5刷新的時候不論緩存過不過期都會和服務(wù)器進行緩存協(xié)商(帶上Etag、last-modified之類的信息)
4.       在ctrl+F5的時候直接在瀏覽器單方面決定不使用緩存(直接cache-control:no-cache)
5.       在后退的時候除非顯式的聲明no-cache,否則都會使用緩存(不論是否過期)
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
瀏覽器緩存機制
設(shè)計一個完美的HTTP緩存策略
一文輕松讀懂經(jīng)典的HTTP協(xié)議(由請求和響應(yīng)構(gòu)成打開頭條的Web頁面通過F12打開控制臺我們挑選一個請求來分析下HTTP的結(jié)構(gòu))
通過 Node.js 小示例學(xué)習(xí)瀏覽器緩存策略
頁面性能優(yōu)化辦法有哪些?| 技術(shù)頭條
接口測試第七課(cache)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服