前端性能優化之瀏覽器緩存

来源:https://www.cnblogs.com/dengnanhao/archive/2022/06/02/16255768.html
-Advertisement-
Play Games

1.背景 業務需求,需要聯動多個平臺,涉及到各平臺的模擬登錄。 已知加密前明文且正常登錄。(無驗證碼要求) 某平臺驗證驗證方式為.\login介面POST一串json字元串 { "account": "********", "password": "uR+dmpMdF9MRXfkBG3wQ+w==" ...


一、背景

最近公司業務需要開發了一個js sdk,功能開髮結束,混淆之後的代碼大小差不多有300多kb。sdk主要是通過http介面請求返回至前端進行渲染。因為js包體積300多kb會消耗過多的網路資源,所以採用瀏覽器緩存策略避免多次http請求造成網路資源浪費,降低網路延遲,減少網路負荷,提高性能。

二、瀏覽器緩存

根據瀏覽器緩存的位置可以分為4類

  1. Memory Cache
  2. Disk Cache
  3. Service Worker
  4. Push Cache
緩存類型 存儲位置 優點 缺點 觸發時機
Memory Cache 存儲在運行記憶體中 讀取速度快 不能持久化存儲,瀏覽器tab頁關閉之後就被釋放 頁面載入之後,刷新頁面就會觸發
Disk Cache 存儲在本地磁碟中 能持久化存儲,瀏覽器tab頁關閉之後還存在 讀取速度慢 瀏覽器關閉之後,再次打開頁面
Service Worker 存儲在本地磁碟中 自由控制緩存哪些文件、如何匹配緩存、如何讀取緩存,並且緩存是持續性 讀取速度慢 瀏覽器關閉之後,再次打開頁面
Push Cache(推送緩存) 存儲在會話(Session)中 - 會話結束就被釋放 Push Cache是針對HTTP/2標準下的推送資源設定的 ,是瀏覽器緩存的最後一道緩存機制,是在設置了Last-Modifed但沒有設置Cache-Control或者Expires時觸發

三、示例

  • 配置nginx
      #靜態資源文件緩存
      location ^~ /static/ {
        access_log off;
        add_header Cache-Control max-age=2592000;
        expires  30d;
      }
    
  • 訪問/static/observer.js
  1. Memory Cache
  2. Disk Cache
  3. Service Worker及Push Cache當前未涉及到後續補充

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 資料庫安全,是指以保護資料庫系統、資料庫伺服器和資料庫中的數據、應用、存儲,以及相關網路連接為目的,防止資料庫系統及其數據遭到泄露、篡改或破壞的安全技術。 資料庫是企業最為核心的數據保護對象。與傳統的網路安全防護體系不同,資料庫安全技術更加註重從客戶內部的角度出發做安全,其安全要求包括了保密性、完整 ...
  • 作者:王志斌 編輯:鐘華龍 本文來自社區小伙伴 王志斌 的投稿。從小白的角度,帶你一步步實現將 RadonDB PostgreSQL 集群部署到 Kubernetes 上。文章分為上下兩部分,《第一部 Kubernetes 環境準備》已經發佈。第二部分將帶大家部署一個 RadonDB Postgre ...
  • 好消息,騰訊雲資料庫團隊智能調參CDBTune產品現已進入內測階段,歡迎資料庫愛好者、使用者、開發者前來測試。 CDBTune(cloud database tune)是基於2019至2021年間騰訊雲資料庫團隊連續發表兩篇頂級論文的研究成果,對雲資料庫進行調優的一整套解決方案,旨在充分藉助深度學習 ...
  • CITY表: Field Type ID number NAME VARCHAR2(17) COUNTRYCODE VARCHAR2(3) DISTRICT VARCHAR2(20) POPULATION number 1.Query all columns for all American cit ...
  • Mysql 5.7的安裝搭建 首先去到官方網站的下載鏈接中找到對應你Linux伺服器版本的mysql軟體包 https://dev.mysql.com/downloads/repo/yum/ 我使用的是CentOS7所以下載Red HAT Enterprise Linux 7版本的軟體包,然後跳轉至 ...
  • 華為開發者聯盟與艾瑞咨詢聯合發佈《2022年移動應用出海趨勢洞察白皮書》,本白皮書結合多種研究方法分析移動應用的出海吸引力、海外市場選擇、出海的痛點及挑戰,為現階段移動應用企業的出海戰略決策提供市場洞察,並針對出海挑戰呈現應對策略,助力移動應用開發者出海。 華為開發者聯盟一直致力於全方位聯接全球開發 ...
  • 華為帳號服務(Account Kit)為開發者提供簡單、安全的登錄授權功能,用戶不必輸入帳號、密碼和繁瑣驗證,就可以通過華為帳號快速登錄應用,即刻使用App。這篇文章收集了開發者們集成華為帳號服務中會遇到的典型問題,並給出瞭解決方法,希望為其他遇到類似問題的開發者提供參考。 1 .redirect_ ...
  • 一. 在iview中寫一個submenu <Col span="3" type="flex" v-if="showCids"> <Menu ref="menus" theme="light" active-name="0" @on-select="selectMenu" width="auto" > ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...