簡體   English   中英

多虛擬目錄站點中的服務工作者

[英]Service worker in multi virtual directories site

我很難理解服務人員的行為。 我的域的根目錄中有一個Angular漸進式Web應用程序。 此文件夾包含所有JavaScript文件。 然后,每個我的客戶端都有一個子文件夾,其中包含index.html文件,manifest.json和一些與此客戶端相關的圖像。 因此,索引文件指向父文件夾中的JavaScript文件。

現在,我想要一個服務工作者,該服務工作者將JavaScript文件緩存在根目錄中,並將索引文件緩存在每個子文件夾中。

目前,我已經將服務工作者放在根目錄中,但是對於每個客戶端,它將緩存我不想使用的所有其他客戶端文件。 每當我需要創建新的子文件夾時,都必須在根目錄中更新服務工作者。 有沒有辦法像多個服務人員一樣,每個子文件夾一個? (我知道它無法獲取父目錄中的文件)

是的,您可以通過指定option scope來為多個路徑注冊多個服務工作者。

navigator.serviceWorker.register('/sw.js', {
  scope: '/path/to/folder1'
}).then(function(registration) {
  console.log('Service worker registration succeeded. This service worker will catch all http requests under /path/to/folder1');
});

navigator.serviceWorker.register('/sw.js', {
  scope: '/path/to/folder2'
}).then(function(registration) {
  console.log('Service worker registration succeeded. This service worker will catch all http requests under /path/to/folder2');
});

相關的MDN文章。

https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM