整合營銷服務商

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

          免費咨詢熱線:

          更好的緩存技術可以提高網站響應速度

          務器端優化我們網站的速度時,緩存是最關鍵的技術之一。

          加速站點需要緩存:它不是讓服務器為每個請求動態創建HTML輸出,而是僅在第一次請求HTML之后創建HTML,緩存它,然后從此開始提供緩存版本,緩存提供更快的響應,并釋放服務器中的資源。從服務器端優化我們站點的速度時,緩存是最重要的任務之一。

          生成頁面的HTML輸出時,如果它包含具有用戶狀態的代碼,例如為登錄用戶打印歡迎消息“Hello {{User name}}!”,則無法緩存該頁面。否則,如果有人首先訪問該站點,并且緩存了HTML輸出,那么所有用戶都會受到“Hello!”的歡迎。

          因此,緩存插件通常會在用戶登錄時禁用緩存,如下面的插件WP Super Cache所示:

          禁用已登錄用戶的緩存是不可取的,應該避免使用,因為即使具有用戶狀態的HTML代碼量與頁面中的靜態內容相比最小,仍然不會緩存任何內容,原因是要緩存的實體是頁面,而不是頁面中HTML代碼的特定部分,因此通過包含一行不能緩存的代碼,就不會緩存任何內容,這是一種全有或全無的情況。

          通常為了解決這個問題,我們會搭建服務器,以避免在服務器端使用用戶狀態呈現HTML代碼,并在通過API獲取所需數據后,僅在客戶端呈現它,通過從服務器上呈現的代碼中刪除用戶狀態,即使用戶已登錄,也可以緩存該頁面。

          ?我們也正在探索一種增強網站緩存的方法 ,主要是為了即使在用戶登錄時也能在網站上啟用緩存,策略依賴于僅對那些需要用戶狀態的頁面禁用緩存,以及使用哪些組件可以決定是在客戶端還是在服務器端呈現,具體取決于訪問用戶狀態的頁面。

          最后我們堅信一個網站緩存技術發展,從而提供更快的響應和更好的用戶體驗。

          迎關注我的頭條號:Wooola,專注于Java、Golang、微服務架構,致力于每天分享原創文章、快樂編碼和開源技術。

          前言

          最近發版前端項目,用戶經常反饋新添加功能在線上環境不好用,常出現新老頁面并存的狀況。經前端同事排查法發現,實際上只需要重新刷新一下頁面就沒事了。但是每次去通知用戶肯定不現實,所以需要對前端的js和css等文件采取一定的緩存失效的措施,強制瀏覽器重新去服務器獲取新的js代碼以及css文件。

          樓主經過實際的項目情況反饋,總結以下兩點切實可行的辦法,分享給大家,希望對大家有幫助。

          1. 路徑后面加時間戳或者隨機數的方式
          2. 采用hash(md5)重命名文件

          路徑后面加時間戳或者隨機數的方式

          時間版本號

          如果每次發布,針對修改過的js或者css文件路徑加上時間的版本號,一般以年月日拼寫。

          <script type="text/javascript" src="lib/common.js?v=20190719"></script>
          <link rel="stylesheet" type="text/css" href="assets/css/ie/ie8.css?v=20190719" />
          

          如果發生緊急情況,需要在一天當中對某些css或者js文件多次發版,可以把時間精確到時分秒。

          目前樓主主推采用加版本號的方式,因為文件太多,只能做增量修改。好處是沒有做任何修改js或者css文件可以不用加版本號。

          采用隨機數

          document.write('<script src=\".lib/common.js?r=' + Math.random() + "\"" + '><\/script>');
          

          一般不建議用隨機數的方式,因為每次刷新頁面,隨機數都會變化,那么瀏覽器認為一個新的url需要重新請求服務端獲取js或css文件,不會在使用瀏覽器本地緩存。同時占用網絡帶寬,影響服務器響應速度。

          采用hash(md5)重命名文件

          可以利用 gulp-rev或者webpack

          entry: {
           main: './src/common.js',
           slove: './src/ie8.js'
          },
          output: {
           filename: '[name].[hash].js',
           path: path.resolve(__dirname, 'dist')
          }
          

          例如百度搜索首頁,就是利用hash給js和css文件重命名。

          齡稍微大一點的朋友都知道,以前百度搜索有一個查看網頁快照的功能。當用戶從搜索結果中點擊某個感興趣的網頁鏈接地址,原網頁可能因為各種原因無法打開,最常見的就是報404錯誤。

          如果碰到這種情況,用戶可以點擊搜索結果旁邊的“百度快照”,就可以打開一個原網頁的快照副本,也就是原網頁的緩存。這個副本可能去掉了CSS和各種樣式,版面也可能會發生錯亂,但是會保留、顯示源網頁的主要文字部分內容,這個功能非常方便實用。

          提起這個功能,小編當年有一個記憶非常深刻、而且有點“搞笑”的事情。有一次小編在后臺誤刪除了一篇非常重要的文章,結果嘗試了各種辦法,怎么也找不回來。

          最后,小編抱著死馬當活馬醫的心態,在百度搜索原文章的標題,成功找到了之前那篇文章的鏈接。當然,由于在這之前我已經刪除了這篇內容,所以當時這個鏈接指向的是一個不存在的空鏈接,是不可能打開的。

          所幸的是點擊旁邊的百度快照,可以成功地打開、看到原網頁的快照緩存副本,那篇文章還在,于是我趕緊把文章復制添加回數據庫,成功地找回恢復了原內容,有驚無險。

          現在大家都知道,百度已經在搜索結果中刪除了這項功能,現在用戶已經無法查看網頁緩存快照了,另外一方面,作為全球搜索市場上的龍頭,谷歌一直保留著這項功能。

          不過有一段時間,也有部分用戶反映吐槽,表示自己在使用谷歌搜索的時候,無法使用這個功能。很明顯,谷歌方面在進行調整測試,引發了很多用戶的擔憂。

          現在壞消息來了,2024年2月2日,谷歌高管丹尼·沙利文(Danny Sullivan)宣布,谷歌方面也將在搜索結果中刪除查看網頁緩存功能,該功能將被正式關閉。丹尼·沙利文(Danny Sullivan)在其個人社交媒體上發文宣布了這個消息,并解釋了原因。

          該高管表示,谷歌之所以在早期推出這項功能,主要是因為在互聯網普及的初期,網站(包括提供支持的后臺服務器和骨干通信網)各方面的可靠性較差。

          在這種情況下,部分網站(或者網頁)出現打不開,或者加載速度緩慢的情況比較普遍。在這種背景下,谷歌在搜索結果中提供查看網頁緩存的功能非常有必要,而且很實用。

          但是,現在的情況和當時已經不可同日而語了,主流網站穩定性和可靠性都很高,網頁打不開的問題基本不存在了,所以谷歌方面決定正式棄用、刪除這項功能。

          其實,在搜索結果中提供原網頁的緩存快照副本,還有很多其它功能和作用,去掉非常可惜。但這是一種大趨勢,現在幾乎所有的搜索引擎都不再提供這項功能,一個時代過去了。


          主站蜘蛛池模板: 中文字幕在线视频一区| 国产在线aaa片一区二区99| 亚洲AV无码一区二区三区网址| 国产精品无圣光一区二区| 无码人妻AⅤ一区二区三区| 精品国产伦一区二区三区在线观看| 日韩免费视频一区二区| 人妖在线精品一区二区三区| 美女视频一区三区网站在线观看| 精品无码国产一区二区三区AV| 色综合视频一区中文字幕| 精品少妇一区二区三区在线| 亚洲视频一区在线| 一区二区三区国模大胆| 日韩一区二区久久久久久| 国产韩国精品一区二区三区久久| 国产精品久久亚洲一区二区| 亚洲综合色自拍一区| 国产一区二区精品在线观看| 精品成人一区二区三区四区| 国产精品高清一区二区三区不卡| 无码8090精品久久一区| 久久中文字幕无码一区二区| 波多野结衣高清一区二区三区| 久久久久久人妻一区二区三区 | 少妇特黄A一区二区三区| 无码国产精品一区二区高潮| 少妇激情av一区二区| 国产波霸爆乳一区二区| 亚洲日本一区二区三区在线不卡| 日韩一区二区三区四区不卡| 一区二区视频在线| 色久综合网精品一区二区| 亚洲日本精品一区二区 | 日韩电影在线观看第一区| 国模无码视频一区| 精品国产亚洲第一区二区三区| 精品人妻AV一区二区三区 | 久久se精品一区二区影院| 亚洲色精品VR一区区三区| 国产精品主播一区二区|