亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
什麼是Workbox?
如何開(kāi)始使用Workbox?
常見(jiàn)緩存策略有哪些?
注意事項(xiàng)與調(diào)試技巧
首頁(yè) web前端 前端問(wèn)答 用工作箱構(gòu)建漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序

用工作箱構(gòu)建漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序

Jul 23, 2025 am 02:49 AM
pwa Workbox

Workbox是Google推出的Service Worker增強(qiáng)工具集,用於簡(jiǎn)化PWA開(kāi)發(fā)。它通過(guò)模塊化封裝實(shí)現(xiàn)資源緩存、請(qǐng)求路由和版本更新等功能,如配置不同資源的緩存策略(NetworkFirst、CacheFirst等),支持多種接入方式(如workbox-sw.js、workbox-webpack-plugin),並提供調(diào)試工具和日誌支持,幫助開(kāi)發(fā)者高效構(gòu)建可靠的離線體驗(yàn)。

Building Progressive Web Apps with Workbox

PWA(漸進(jìn)式網(wǎng)頁(yè)應(yīng)用)越來(lái)越受歡迎,因?yàn)樗茉跊](méi)有原生App的情況下提供類似App的體驗(yàn)。而Workbox,作為Google推出的一套工具庫(kù),極大簡(jiǎn)化了Service Worker的開(kāi)發(fā)和緩存管理,是構(gòu)建PWA的重要助手。

Building Progressive Web Apps with Workbox

什麼是Workbox?

簡(jiǎn)單來(lái)說(shuō), Workbox = Service Worker 的增強(qiáng)版工具集。它幫你處理資源緩存、請(qǐng)求路由、版本更新這些繁瑣但關(guān)鍵的任務(wù)。如果你之前嘗試過(guò)手寫(xiě)Service Worker,就會(huì)知道手動(dòng)處理緩存策略有多容易出錯(cuò)。而Workbox把這些常見(jiàn)操作封裝成模塊,讓你用更少代碼做更多事。

比如你想讓圖片走“網(wǎng)絡(luò)優(yōu)先”策略,JS/CSS走“緩存優(yōu)先”,只需要配置幾行代碼就能實(shí)現(xiàn)。

Building Progressive Web Apps with Workbox

如何開(kāi)始使用Workbox?

要開(kāi)始用Workbox,有幾個(gè)常見(jiàn)方式:

  • 在項(xiàng)目中直接引入workbox-sw.js (適合靜態(tài)網(wǎng)站或輕量級(jí)項(xiàng)目)
  • 配合Webpack/Vite等打包工具使用workbox-webpack-plugin (適合現(xiàn)代前端項(xiàng)目)
  • 自定義Service Worker文件並導(dǎo)入Workbox模塊

以Vite為例,你可以安裝vite-plugin-pwa ,它內(nèi)部已經(jīng)集成Workbox,只需簡(jiǎn)單配置就能生成帶緩存策略的Service Worker文件。

Building Progressive Web Apps with Workbox

一個(gè)基本的配置可能像這樣:

 import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { VitePWA } from 'vite-plugin-pwa'

export default defineConfig({
  plugins: [
    react(),
    VitePWA({
      registerType: 'autoUpdate',
      workbox: {
        runtimeCaching: [
          {
            urlPattern: ({url}) => url.pathname.startsWith('/api'),
            handler: 'NetworkFirst',
            options: {
              cacheName: 'api-cache',
              expiration: {
                maxEntries: 10,
                maxAgeSeconds: 60 * 60 * 24 * 7, // 一周},
            },
          },
        ],
      },
    }),
  ]
})

這個(gè)例子中的runtimeCaching部分就是告訴Workbox:所有以/api開(kāi)頭的請(qǐng)求,優(yōu)先走網(wǎng)絡(luò),失敗再讀緩存,並保存到名為api-cache的緩存空間裡。

常見(jiàn)緩存策略有哪些?

Workbox內(nèi)置了幾種常用的緩存策略,可以根據(jù)不同類型的資源選擇合適的方式:

  • CacheOnly :只從緩存讀?。ㄟm合離線包內(nèi)的靜態(tài)資源)
  • NetworkOnly :只走網(wǎng)絡(luò)(適合必須實(shí)時(shí)獲取的數(shù)據(jù))
  • StaleWhileRevalidate :先返回緩存,同時(shí)後臺(tái)更新(適合用戶頭像、字體這類可容忍舊數(shù)據(jù)的資源)
  • NetworkFirst / CacheFirst :根據(jù)場(chǎng)景選其一

舉個(gè)例子:

  • JS/CSS 文件適合用CacheFirst
  • 用戶動(dòng)態(tài)內(nèi)容(如個(gè)人資料)可以考慮NetworkFirst
  • 靜態(tài)圖片可以用StaleWhileRevalidate

你也可以通過(guò)自定義插件來(lái)擴(kuò)展緩存行為,比如在緩存前修改響應(yīng)體,或者記錄日誌。

注意事項(xiàng)與調(diào)試技巧

雖然Workbox簡(jiǎn)化了很多流程,但在實(shí)際部署時(shí)還是有些細(xì)節(jié)需要注意:

  • 緩存版本控制很重要:每次發(fā)布新版本時(shí),記得更新緩存名稱或配置,否則瀏覽器可能還在用舊緩存。
  • Service Worker生命週期容易被忽略:註冊(cè)後不會(huì)立即生效,需要頁(yè)面刷新一次,或者主動(dòng)調(diào)用.skipWaiting() 。
  • 測(cè)試離線體驗(yàn)要徹底:Chrome DevTools 的Application 標(biāo)籤頁(yè)裡可以模擬離線環(huán)境,檢查是否真的能加載緩存內(nèi)容。
  • 不要緩存敏感數(shù)據(jù):比如用戶token之類的私有信息,避免本地暴露風(fēng)險(xiǎn)。

調(diào)試建議:

  • 打開(kāi)Chrome DevTools → Application → Service Workers 查看狀態(tài)
  • 使用Workbox DevTools 插件來(lái)監(jiān)控緩存命中情況
  • 在開(kāi)發(fā)階段打開(kāi)Workbox的日誌輸出(默認(rèn)是靜默模式)

基本上就這些。 Workbox確實(shí)大大降低了PWA開(kāi)發(fā)門(mén)檻,但也別掉以輕心,緩存策略一旦設(shè)置錯(cuò)誤,可能導(dǎo)致用戶看到舊內(nèi)容或無(wú)法更新。

以上是用工作箱構(gòu)建漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1597
29
PHP教程
1488
72
蘋(píng)果解釋歐洲新規(guī)則削弱 PWA 應(yīng)用原因:安全風(fēng)險(xiǎn)大、用戶採(cǎi)用率低、遵守 DMA 要求 蘋(píng)果解釋歐洲新規(guī)則削弱 PWA 應(yīng)用原因:安全風(fēng)險(xiǎn)大、用戶採(cǎi)用率低、遵守 DMA 要求 Feb 16, 2024 am 10:45 AM

2月16日消息,開(kāi)放網(wǎng)路倡導(dǎo)組織先前質(zhì)疑蘋(píng)果歐洲新規(guī),認(rèn)為其嚴(yán)重削弱了PWA網(wǎng)路應(yīng)用程序,讓其淪為捷徑。蘋(píng)果更新官方支援文檔,表示此舉是為了遵守《數(shù)位市場(chǎng)法案》(DigitalMarketsAct)的要求。蘋(píng)果解釋稱在歐洲市場(chǎng)放開(kāi)非WebKit渲染引擎之後,就必須要建立全新的整合架構(gòu),但目前iOS系統(tǒng)還不夠完善,沒(méi)有能力在使用第三方瀏覽器引擎後,解決和PWA應(yīng)用相關(guān)的複雜安全和隱私問(wèn)題。蘋(píng)果解釋說(shuō),考慮到DMA的其他要求以及PWA的用戶採(cǎi)用率非常低,開(kāi)展這項(xiàng)工作並不現(xiàn)實(shí)。因此,為了符

pwa有哪些web標(biāo)準(zhǔn) pwa有哪些web標(biāo)準(zhǔn) Oct 16, 2023 am 11:57 AM

pwa的web標(biāo)準(zhǔn)有「Service Worker服務(wù)工作執(zhí)行緒」、「Web App Manifest網(wǎng)路應(yīng)用程式清單」、「HTTPS安全協(xié)定」、「IndexedDB離線資料儲(chǔ)存」、「Web Push推播通知」和「App Shell應(yīng)用程式外殼模式」六種標(biāo)準(zhǔn):1、Service Worker是PWA的核心技術(shù)之一,用於實(shí)現(xiàn)離線快取、推播通知等功能等等。

如何使用Vue建置PWA和Hybrid行動(dòng)應(yīng)用程式? 如何使用Vue建置PWA和Hybrid行動(dòng)應(yīng)用程式? Jun 27, 2023 am 09:56 AM

隨著行動(dòng)互聯(lián)網(wǎng)的普及,越來(lái)越多的企業(yè)和開(kāi)發(fā)者開(kāi)始意識(shí)到行動(dòng)應(yīng)用帶來(lái)的商業(yè)價(jià)值。然而,傳統(tǒng)的原生開(kāi)發(fā)方式面臨著許多問(wèn)題,如開(kāi)發(fā)效率低、支援平臺(tái)有限等。因此,一種新的開(kāi)發(fā)方式逐漸興起──基於Web技術(shù)的行動(dòng)應(yīng)用開(kāi)發(fā),其中包括PWA和Hybrid兩種方式。本文將簡(jiǎn)單介紹如何使用Vue框架建構(gòu)PWA和Hybrid行動(dòng)應(yīng)用。一、PWA1.1什麼是PWAPWA即Pro

漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序(PWAS)開(kāi)髮指南 漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序(PWAS)開(kāi)髮指南 Jul 20, 2025 am 03:10 AM

要開(kāi)發(fā)一個(gè)ProgressiveWebApp(PWA),需掌握其核心特性、安裝機(jī)制與性能優(yōu)化策略。 1.PWA的三大核心特性包括可安裝性、離線可用性和HTTPS支持,關(guān)鍵技術(shù)是ServiceWorker和manifest.json;2.用戶安裝需滿足訪問(wèn)頻次、ServiceWorker註冊(cè)和manifest配置,並通過(guò)監(jiān)聽(tīng)beforeinstallprompt事件主動(dòng)提示;3.性能優(yōu)化建議使用高效緩存策略、資源壓縮與懶加載,注意iOS兼容性,考慮框架插件輔助開(kāi)發(fā)。

用工作箱構(gòu)建漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序 用工作箱構(gòu)建漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序 Jul 23, 2025 am 02:49 AM

Workbox是Google推出的ServiceWorker增強(qiáng)工具集,用於簡(jiǎn)化PWA開(kāi)發(fā)。它通過(guò)模塊化封裝實(shí)現(xiàn)資源緩存、請(qǐng)求路由和版本更新等功能,如配置不同資源的緩存策略(NetworkFirst、CacheFirst等),支持多種接入方式(如workbox-sw.js、workbox-webpack-plugin),並提供調(diào)試工具和日誌支持,幫助開(kāi)發(fā)者高效構(gòu)建可靠的離線體驗(yàn)。

使用H5推送通知構(gòu)建漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序 使用H5推送通知構(gòu)建漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序 Jul 18, 2025 am 12:43 AM

要在H5頁(yè)面中啟用推送通知,首先需要用戶授權(quán),通過(guò)Notification.requestPermission()獲取權(quán)限;其次使用PushManager.subscribe()獲取訂閱信息包括endpoint、publicKey和authToken;最後將訂閱信息發(fā)送至後端保存。推送消息由後端調(diào)用WebPush協(xié)議發(fā)送,例如在Node.js中可使用web-push庫(kù)構(gòu)造請(qǐng)求並發(fā)送POST到endpoint地址。當(dāng)消息到達(dá)時(shí),ServiceWorker監(jiān)聽(tīng)push事件並通過(guò)showNotific

2024年的漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序(PWA)完整指南 2024年的漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序(PWA)完整指南 Jul 29, 2025 am 04:18 AM

ProgressiveWebApps(PWAs)in2024arewebapplicationsthatdeliveranativeapp-likeexperiencethroughthebrowser,offeringofflineaccess,pushnotifications,homescreeninstallation,andfastperformancewithonecodebaseacrossplatforms.1.TheyarebuiltusingaWebAppManifestfo

2023年漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序指南(PWAS) 2023年漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序指南(PWAS) Aug 02, 2025 pm 01:19 PM

PWAsareaviablealternativetonativeappsin2023,offeringapp-likeexperiencesviathebrowserwithofflineaccess,pushnotifications,andhomescreeninstallation.1.Theyenablecross-platformreachwithonecodebase,reducingdevelopmentcosts.2.Theydeliverfasterloadtimesandl

See all articles