为什么在浏览器缓存处理缓存时使用服务人员进行缓存?

问题描述:

我读取服务工作者进行离线缓存,类似于浏览器缓存。那么为什么更喜欢服务人员进行这种缓存。即使浏览器缓存也会检查修改或不修改的文件,然后从缓存中提供服务,而服务工作人员则从我们的代码中处理相同的事情。但默认情况下,浏览器具有该功能,那么为什么更喜欢服务人员?为什么在浏览器缓存处理缓存时使用服务人员进行缓存?

服务人员可以完全控制网络请求。您可以为获取事件返回任何您想要的内容,它不需要是该特定文件的过去或当前内容。

但是,如果浏览器缓存处理您的需求,则您没有义务使用服务人员。

它们也用于诸如推送通知之类的事物。

文档: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. 浏览器缓存不同,由于服务工作人员支持脱机缓存,即使网络不可用,webapp也将访问缓存的内容。
  2. 服务人员将给予本机经验。
  3. 服务人员无法修改DOM内容,但仍可以在其范围内提供页面服务。借助postMessage等事件,可以访问该页面并更改DOM。
  4. 服务人员不需要用户交互或网页。 它在后台运行。
+0

“服务人员将给予本地经验。”这是什么意思? – Monsignor

+0

本地体验提供丰富的离线体验,定期的后台同步,推送通知 – vbharath