亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解使用angular框架離線你的應用(pwa指南)

2019-11-19 12:11:19
字體:
來源:轉載
供稿:網友

簡介

關于service worker,網絡上已經有了較多的文章??偟膩碚f它依靠緩存資源,攔截http請求,來幫助我們達到離線使用網站的效果。

而angular cli為了讓使用service worker更加便利,為開發者提供了一個配置窗口(ngsw-config.json)和一個與service worker通訊的服務(SwUpdate)。

啟用

1、新建項目后在項目根目錄下鍵入ng add @angular/pwa。

會為你的項目添加一些文件,其中包括上文提到的ngsw-config.json,為了即刻感受離線應用的魅力,現暫不需配置。

2、安裝http-server npm install http-server -g

將用http-server啟用的服務器來加載應用,這么做是為了模擬真實的生產環境,因為ng serve環境下無法啟用service worker。

3、鍵入ng build --prod進行打包。 打包完成后進入dist下的項目根目錄下,鍵入http-server -p <port>將打包后的應用部署在http-server指定的端口上。

4、打開瀏覽器進入控制臺,以chrome為例,在network選項卡上勾選offline模擬離線使用。

此時重新刷新網頁發現頁面依然能夠在離線狀態下顯示,說明service worker已經工作了。

配置

以上并沒有手動配置ngsw-config.json,然而初始的配置還有許多不足,比如無法攔截緩存api請求。因此需要對該文件的配置參數做一個大概了解(點擊瀏覽官方配置說明)。

參考官方的說明,我們了解到可以配置靜態資源的緩存策略(配置項中的assetGroups)以及動態資源的緩存策略(配置項中的dataGroups)。

靜態資源配置(assetGroups)

interface AssetGroup { name: string; installMode?: 'prefetch' | 'lazy'; updateMode?: 'prefetch' | 'lazy'; resources: {  files?: string[];  /** @deprecated As of v6 `versionedFiles` and `files` options have the same behavior. Use `files` instead. */  versionedFiles?: string[];  urls?: string[]; };}

這是該配置項的接口,下面對各個屬性做一個簡要的說明:

  • resources屬性下可配置本地的靜態資源(resources.files)和通過cdn來的靜態資源(resources.urls)
  • name是需要編寫的該資源集合的唯一的名字
  • installMode配置的是你的網站應用第一次在當前瀏覽器加載后,service worker應該進行的緩存策略。選擇'prefetch'會將resources列出的資源一股腦兒的預先緩存起來,不管當前是否有訪問到。選擇'lazy'則不會預先緩存,而是在用到時才會進行緩存。
  • updateMode配置的是當檢測到資源的版本改變之后,所進行的資源緩存策略。

如何得知資源的版本發生了變化呢?angular service worker會對比資源內容的hash值。如果hash值不同則版本不同。選擇'prefetch'會立即緩存更新的資源,選擇'lazy'會在用到時在進行緩存。不過,這里要注意如果在installMode的配置中沒有選擇'lazy'模式,則這里的'lazy'模式也不會生效。

動態資源配置(dataGroups)

export interface DataGroup { name: string; urls: string[]; version?: number; cacheConfig: {  maxSize: number;  maxAge: string;  timeout?: string;  strategy?: 'freshness' | 'performance'; };}

這是緩存動態資源的配置項,其實就是緩存的ajax、fetch的response,將這些api請求的響應體進行緩存后,就可以在離線狀態下使用。其中:

  • urls配置api的url
  • cacheConfig配置具體的緩存策略:
    • maxSize 緩存的最大條目數或響應數,太多則會暫用系統資源
    • maxAge 過期時間,該項與下面提到的strategy策略配合,如果設置過長,容易呈現老資源給用戶。
    • timeout是指的應用發起真實網絡請求后的等待時間,如果超時將會配合下面提到的strategy進行動作
    • strategy策略,選擇'performance'會直接攔截網絡請求,返回緩存(前提是有緩存,并且沒有超過maxAge的時間),選擇'freshness'會在timeout超時的時候返回緩存。

與service worker通訊

與service worker通訊可以讓我們主動做很多事情,而不是僅僅依賴于ngsw-config.json配置,通過依賴注入一個SwUpdate*服務,我們可以主動要求查詢、更新、激活應用的版本,(這部分內容筆者還未投入應用,詳見官網描述)

總結

這篇文章我們分享了如何在angular里面使用service worker 進行離線場景的增強,其中包括

  • 引入@angular/pwa
  • 安裝http-server,模擬生產環境
  • 配置ngsw-config.json 緩存策略
  • 簡單描述了與service worker通訊的概念

相信今后angular框架能夠在pwa應用方便給我們更多的方便。以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美日韩中文| 中文字幕日韩在线视频| 久久99精品久久久久久噜噜| 亚洲国产精品久久久久久| 日韩精品中文在线观看| 国内偷自视频区视频综合| 精品一区二区三区三区| 国产精品九九久久久久久久| 懂色av中文一区二区三区天美| 欧美性猛交xxxx黑人| 精品亚洲aⅴ在线观看| 精品国产一区av| 中文字幕国产日韩| 中国日韩欧美久久久久久久久| 久久激情五月丁香伊人| 亚洲乱码国产乱码精品精| 国产一区二区三区视频免费| 永久免费看mv网站入口亚洲| 亚洲精品福利视频| 国产欧美日韩丝袜精品一区| 亚洲男人天堂久| 日韩欧美在线视频免费观看| 97精品久久久| 在线观看国产精品日韩av| 欧美一区二区三区四区在线| www.精品av.com| 久久这里只有精品99| 中文字幕日韩av综合精品| 久久精品久久久久电影| 亚洲人成人99网站| 欧美巨大黑人极品精男| 国产美女精彩久久| 日韩在线中文视频| 亚洲图片欧洲图片av| 精品国产乱码久久久久久虫虫漫画| 国产精品欧美亚洲777777| 中文字幕日韩精品有码视频| 国产91对白在线播放| 久久成人国产精品| 欧美成人黑人xx视频免费观看| 久久久精品欧美| 欧美视频裸体精品| 日韩av手机在线| 性欧美暴力猛交69hd| 欧美高清自拍一区| 日韩激情视频在线| 国产视频亚洲视频| 欧美福利视频在线| 国产国语videosex另类| 综合激情国产一区| 精品成人国产在线观看男人呻吟| 国产精品日日做人人爱| 国产不卡视频在线| 日韩美女免费线视频| 久久久精品电影| 亚洲精品视频免费| 国产一区二区三区在线观看视频| 日韩av在线免播放器| 亚洲成色999久久网站| 久久国产精品网站| 日韩欧美在线网址| 中文字幕成人精品久久不卡| 中文字幕欧美日韩va免费视频| 欧美夜福利tv在线| 在线观看91久久久久久| 欧美第一淫aaasss性| 久久精品国产一区二区电影| 国产精品久久久久久av下载红粉| 日本精品一区二区三区在线| 国产日韩欧美在线观看| 亚洲白拍色综合图区| 国产成人精品久久二区二区91| 亚洲国产精品va在看黑人| 欧美一级淫片videoshd| 欧美日韩免费在线| www国产91| 成人国产亚洲精品a区天堂华泰| 亚洲自拍偷拍福利| 欧美高清videos高潮hd| 福利一区福利二区微拍刺激| 久久精品在线视频| 色小说视频一区| 隔壁老王国产在线精品| 日韩一区二区精品视频| 日韩精品在线视频美女| 欧美大片在线看| 在线播放国产一区中文字幕剧情欧美| 国产精品网站大全| 欧美孕妇性xx| 日本一本a高清免费不卡| 91精品中国老女人| 亚洲精品一区二区三区不| 国产美女久久精品香蕉69| 欧美在线性视频| 国产精品视频久久久| 亚洲国模精品私拍| 狠狠躁夜夜躁人人爽天天天天97| 国产精品久久久久久久久男| 亚洲欧美在线一区| 亚洲天堂日韩电影| 91av在线免费观看视频| 日本一区二区在线播放| 亚洲精品日韩在线| 久久在线免费视频| 欧美日韩国产成人| 国产精品网站视频| 亚洲国产日韩欧美综合久久| 久久精品99久久香蕉国产色戒| 亚洲视频专区在线| 日韩在线观看你懂的| 国产精品看片资源| 日韩在线视频线视频免费网站| 91天堂在线视频| 清纯唯美亚洲综合| 精品国产一区二区三区久久狼黑人| 国产精品网站大全| 成人在线一区二区| 国产精品美女主播| 欧美日韩国产综合视频在线观看中文| 日韩精品免费电影| 欧美精品午夜视频| 国产在线视频欧美| 久久亚洲影音av资源网| 日韩成人黄色av| 茄子视频成人在线| 在线视频日本亚洲性| 国产精品成人免费电影| 亚洲最大福利网站| 国产精品一区二区三区毛片淫片| 欧美亚洲国产视频小说| 国产中文日韩欧美| 欧美激情中文字幕在线| 亚洲最新在线视频| 韩国视频理论视频久久| 91精品国产综合久久香蕉最新版| 性欧美视频videos6一9| 亚洲欧美一区二区三区情侣bbw| 91国产一区在线| 欧美激情精品久久久久久蜜臀| 久久91超碰青草是什么| 青草成人免费视频| 久久视频在线视频| 久久99精品久久久久久噜噜| 国产精品久久久久久久久久久久久久| 日韩一区二区精品视频| 97视频在线观看网址| 欧美日本在线视频中文字字幕| 欧美中文在线字幕| 精品亚洲国产成av人片传媒| 国产中文日韩欧美| 麻豆成人在线看| 久久青草福利网站| 日韩在线www| 在线电影欧美日韩一区二区私密| 日韩av影片在线观看| 欧美福利小视频| 热99精品只有里视频精品| 亚洲男女性事视频| 毛片精品免费在线观看| 中文字幕日本欧美| www国产亚洲精品久久网站| 国产欧美日韩精品丝袜高跟鞋| 日本中文字幕久久看| 一区二区欧美久久|