整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          瀏覽器強緩存和弱緩存的效果演示

          文對強緩存和弱緩存進行講解:

          為了展示強緩存和弱緩存

          第一步:Ctrl + shift + delete將緩存給清除

          將瀏覽器的數據給清空一下

          這里的數據大小是83.4kB

          在響應頭里面,會存在著ETag和Last-Modified資料

          第一請求和第二請求,這里多了一個If-Modified,在弱緩存當中,從緩存中獲取數據,檢驗匹配是經過多次匹配,出現304指令,

          200或者304指令意味著沒有發生變化

          如果是強緩存這里根本不會產生數據,強緩存的特性是存儲在用戶的本地

          瀏覽器緩存相關指令

          expires指令

          expires:該指令用來控制頁面緩存的作用。可以通過該指令控制HTTP應 答中的“Expires"和”Cache-Control"


          expires 有兩種語法,一種是time,time是時間值,它默認是以秒來計數的

          no-cache,無論緩存有沒有過期,都需要發送請求,檢驗緩存有沒有過期

          max-age與expires的意思差不多,只不過有的沒有這個配置,

          epoch會指定1970的時間,max是2037年的時間

          具體配置流程:

          vim ngnix.conf

          為了方便對比,先將請求頭信息進行復制

          之后在conf配置文件下配置

          location ~ .*\.(html|js|css|png) $ {

          }

          以html和js和css等結尾的資源,都走這個

          寫成expiress 1000;的意思是緩存1000s

          檢驗語法,重新加載

          重新對jQuery.js中進行查看

          現在相應頭多了一塊時間max-age=1000秒和Expires:Mon.27(Expires的意思是服務器的時間)

          如果將配置expiress修改為-1000,改為了負數,在請求頭中出現了no-cache

          如果將該值指定為max

          它會出現一些時間,默認是以秒來分割的

          這個max的值是10年的意思,意思是最大的緩存時間可以已達到10年

          add_header指令

          add_header指令是用來添加指定的響應頭和響應值。

          語法 add_header name value [always];

          位置存儲在http、server、location..

          如果想要到web服務器直接獲取,不緩存,用no-store

          不緩存的寫法配置,在配置文件中添加add_header Cache-Control no-store

          現在就實現了弱緩存,第一次訪問了304kb數據,第二次就是83.5kb,實現了弱緩存了

          學Web前端要會哪些技能?瀏覽器緩存是怎么回事?緩存是現在系統中必不可少的模塊,是高并發高性能架構的一個關鍵組件。緩存適用于對數據實時性要求不高以及對性能要求高的場景中,可以有效地提升性能,緩解數據壓力。對于Web前端開發者來說,主要跟瀏覽器中的緩存打交道,接下來小編就給大家講解一下瀏覽器緩存機制。



          什么是瀏覽器緩存?

          瀏覽器緩存機制,其實主要就是HTTP協議定義的緩存機制(如:Expires、Cache-control等)。但是也有非HTTP協議定義的緩存機制,如使用HTML Meta標簽,Web開發者可以在HTML頁面的節點中加入標簽,代碼如下:

          上述代碼的作用是告訴瀏覽器當前頁面不被緩存,每次訪問都需要去服務器拉取。使用上很簡單,但只有部分瀏覽器可以支持,而且所有緩存代理服務器都不支持,因為代理不解析HTML內容本身,而廣泛應用的還是HTTP頭信息來控制緩存。

          瀏覽器對于所請求資源的緩存處理有一套完整的機制,主要包含三個策略:存儲策略、過期策略、協商策略。存儲策略發生在收到請求響應后,用于決定是否緩存相應資源;過期策略發生在請求前,用于判斷緩存是否過期;協商策略發生在請求中,用于判斷緩存資源是否更新。

          緩存又分為強緩存和弱緩存(又稱為協商緩存)。其中強緩存包括Expires和Cache-Control,主要是在過期策略生效時應用的緩存。弱緩存包括Last-Modified和ETag,是在協商策略后應用的緩存。強弱緩存之間的主要區別在于獲取資源時是否會發送請求。

          瀏覽器下訪問資源的方式主要有7種:

          (新標簽)地址欄回車

          鏈接跳轉

          前進、后退

          從收藏欄打開鏈接

          (window.open)新開窗口

          刷新(Command + R / F5)

          強制刷新(Command + Shift + R / Ctrl + F5)

          使用這7種方式訪問資源時,應用緩存的策略會有一些不同。需要注意的是,除此之外,還有一種特殊情況。即在當前地址欄,不改變內容,直接回車,等同于刷新當前頁。但是在當前頁點擊跳轉到自身,和鏈接跳轉一致,并不會等同于刷新。

          如果想學習Web前端技術,一定要多了解一些行情。如果你沒有什么基礎,可以選擇專業的專業,深入學校好好考察,才能更客觀地了解其中的實質。

          態資源上線問題。

          有學員出去面試,面試官問了一個問題:如果你真的沒有做過前端的資源的上線發布,還真的不好回答。

          正常前端要上線的時候,打完包之后會生成一個dist的文件夾,dist文件夾里面會扔到服務器上。這時候上完線之后,比如去請求頁面的時候,基本上有js,對于用戶來說,這時候有新的東西要更新。

          可以看一下,有些資源是走的緩存的,比如js資源,包括圖片資源,看走的緩存。所以對用戶來說,如果不去強制刷新頁面,不清緩存,訪問其實還是舊的業務邏輯。

          打完包之后會有一個index.html,但是這里面的東西通常index.html文件本身很少去做緩存的,所以它里面index.html去上線,上完線之后放到靜態服務器上,就是它。上完之后,這里面外鏈的js是這個版本的。

          比如這次更新完了之后要上線,有可能js變了,后綴名也變了,這時候要去上線。要去上線之后,用戶訪問網頁的時候,加載的index.html里面還是舊的js文件。對于舊的js文件來說,有可能對于遠端的復習上把舊的文件刪掉了,還有可能會導致前面出錯,因為請求不了js了。

          因為上完線之后,js已經刪掉了。這時候一般的方案就是要不就是index.html不做緩存,每次都請求最新的。像首頁沒有緩存,每次刷新頁面都是請求新的,看到沒有?但這種方式不是特別好。

          這種方式怎么做?一般在index.html里面可以加上這樣的請求頭,加上標簽,就是強制不讓它緩存。再一個就是服務是部署在nginx,在nginx里面也可以加上不讓它緩存。但是這種方法還不是最好的。

          一般不管是js這種資源,還是圖片,CSS還是index.html,基本上都會做緩存的。

          比如靜態資源,index.html還是圖片,都會上到cdn服務上,每一次發包的時候,它會把原來的上一個版本的靜態資源留著,也不會去刪除。像會做一個備份,根據日期做一個備份。

          對于用戶來說,這個網站如果用戶沒有清緩存,訪問index.html,那么它里面那種東西還是舊的內容,js文件名也是舊的,但是在這個服務器上,我給它保留備份。

          如果這時候用戶清緩存,或者打包之后,index.html的過期時間已經到了,過期時間到了,它會去請求新的,請求新的就去請求新的js文件,也就是在上線的時候,舊的靜態資源,比如在這個里面的js,都會做備份的。

          但是這樣也有一個弊端,備份的內容會非常多,從二零二年的到現在的二零二四年了,都還在備份當中,因為不知道用戶什么時候去刷新頁面,有可能訪問的是舊的,一般都設置緩存時間的,index.html可能緩存個30天。

          如果面試官在問你的時候,可以以這種方式給面試官聊。


          主站蜘蛛池模板: 国产伦精品一区二区三区视频猫咪 | 亚洲AV香蕉一区区二区三区| 国产午夜精品一区二区三区小说 | 无码国产伦一区二区三区视频| 亚洲成在人天堂一区二区| 国产产一区二区三区久久毛片国语 | 无码国产精品一区二区免费式直播 | 蜜芽亚洲av无码一区二区三区| 国产一在线精品一区在线观看| 国产在线视频一区二区三区| 亚洲乱色熟女一区二区三区蜜臀| 少妇激情一区二区三区视频| 国产亚洲自拍一区| 国产高清在线精品一区小说 | 综合一区自拍亚洲综合图区| AA区一区二区三无码精片| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲AV本道一区二区三区四区| 香蕉一区二区三区观| 红杏亚洲影院一区二区三区| 久久se精品一区二区影院| 中文字幕日韩一区二区三区不 | 2020天堂中文字幕一区在线观| 3d动漫精品啪啪一区二区免费| 亚洲综合在线成人一区| 91精品国产一区| 人妻少妇精品视频三区二区一区| 日韩成人无码一区二区三区 | 中文字幕乱码人妻一区二区三区 | 中文日韩字幕一区在线观看| 亚洲AV美女一区二区三区| 青青青国产精品一区二区| 日韩人妻不卡一区二区三区| 精品女同一区二区三区免费站| 伊人色综合一区二区三区影院视频| 无码国产精品一区二区免费式影视| 亚洲字幕AV一区二区三区四区 | 久久精品岛国av一区二区无码| 3d动漫精品一区视频在线观看| 午夜在线视频一区二区三区| 午夜福利国产一区二区|