使用Service Worker提公升Web應用體驗

2021-08-07 15:39:52 字數 1422 閱讀 2616

service worker能做的事情很多,通過在其生命週期內自定義響應過程可以做到:

1.資源快取控制

2.實現離線頁面

3.版本更迭

...要注意的幾點是:

1.出於安全原因,service worker只能在https下執行。

2.需要確保service worker自身的即時更新。

最重要的一點是:你需要在熟悉service worker生命週期的前提下定義你的service worker行為

mdn這裡貼上自己的**作為參考,注釋已經解釋的挺詳細的了。

var cache_version = null;

var curr_caches = null;

var urlstocache = null;

// 處理訊息

self.addeventlistener('message', function (event) ;

urlstocache = "/" + cache_version;

console.log("sw 設定當前快取版本號: " + curr_caches.ver);

event.ports[0].postmessage();

// 刪除所有不在curr_caches內的快取

if (curr_caches) );

event.waituntil(

caches.keys().then(function(cachenames)

}));

}));

}}});

//安裝完成後觸發

self.addeventlistener('install', function(event) );

self.addeventlistener('activate', function(event) );

self.addeventlistener('fetch', function(event)

event.respondwith(

caches.match(event.request)

.then(function(response)

//否則返回預設的網路請求

//因為請求和響應流只能被讀取一次。為了給瀏覽器返回響應以及把它快取起來,需要轉殖乙份

var fetchrequest = event.request.clone();

return fetch(fetchrequest).then(

function(response)

var responsetocache = response.clone();

//新加入快取

if(curr_caches && curr_caches.ver));

}return response;});

}));

});

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...

學習使用CSDN markdown使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...