中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用angular框架

發布時間:2021-08-10 12:57:18 來源:億速云 閱讀:134 作者:小新 欄目:web開發

這篇文章給大家分享的是有關如何使用angular框架的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

簡介

關于service worker,網絡上已經有了較多的文章。總的來說它依靠緩存資源,攔截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框架”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霞浦县| 庆元县| 密云县| 射阳县| 中卫市| 邯郸县| 乌兰察布市| 徐水县| 资中县| 南皮县| 吴江市| 潮州市| 安宁市| 军事| 新密市| 谢通门县| 龙泉市| 竹山县| 岑巩县| 太康县| 梅州市| 和田市| 南丹县| 乌兰浩特市| 南澳县| 通许县| 隆化县| 资溪县| 清水河县| 和政县| 咸宁市| 勃利县| 磴口县| 客服| 兴文县| 江门市| 阿巴嘎旗| 天水市| 凌海市| 集贤县| 五指山市|