2016-04-28 47 views
15

我讀取服務工作者進行離線緩存,類似於瀏覽器緩存。那麼爲什麼更喜歡服務人員進行這種緩存。即使瀏覽器緩存也會檢查修改或不修改的文件,然後從緩存中提供服務,而服務工作人員則從我們的代碼中處理相同的事情。但默認情況下,瀏覽器具有該功能,那麼爲什麼更喜歡服務人員?爲什麼在瀏覽器緩存處理緩存時使用服務人員進行緩存?

回答

9

服務人員可以完全控制網絡請求。您可以爲獲取事件返回任何您想要的內容,它不需要是該特定文件的過去或當前內容。

但是,如果瀏覽器緩存處理您的需求,則您沒有義務使用服務人員。

它們也用於諸如推送通知之類的事物。

文檔:https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_APIhttps://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers

+0

我第二個「完全控制網絡請求」。服務工作者可以做一些事情,比如操縱標題和一個資源與瀏覽器緩存無法做到的另一個資源(例如離線)。如果您只需要一個標準的瀏覽器緩存,那麼沒有理由將其重新實現爲服務工作者 - 這不會更快或更容易使用。 – mjs

1

我想分享經歷服務工作者的文檔,而我遵守和執行各項要點。

  1. 瀏覽器緩存不同,由於服務工作人員支持脫機緩存,即使網絡不可用,webapp也將訪問緩存的內容。
  2. 服務人員將給予本機經驗。
  3. 服務人員無法修改DOM內容,但仍可以在其範圍內提供頁面服務。藉助postMessage等事件,可以訪問該頁面並更改DOM。
  4. 服務人員不需要用戶交互或網頁。 它在後臺運行。
+0

「服務人員將給予本地經驗。」這是什麼意思? – Monsignor

+0

本地體驗提供豐富的離線體驗,定期的後臺同步,推送通知 – vbharath