Service Worker本质上充当了位于Web应用程序之间的代理服务器。
我担心:ServiceWorker是否也支持离线表单? - 如果是这样,那么我的另一个问题清单是:
答案 0 :(得分:3)
首先,服务工作者可能会做很多事情。例如,他们可以访问IndexedDB,因此始终可以从受控页面或服务工作者的上下文中保存和加载任意数据。
但是,由于服务工作者已注册,服务工作人员默认情况下不会做任何事情。只有当您在服务工作者中编写代码以挂钩不同的事件(install
,fetch
,message
等)时才会感兴趣。
假设,如果您要在缓存HTTP资源的HTTP响应的服务工作者中编写代码,然后使用该缓存的响应响应请求的URL的fetch
事件,那么浏览器将返回并且呈现与响应来自网络时相同的HTML。不会有任何特殊的“表单状态”与HTML响应主体一起缓存。
如果由于某种原因,您确实要保存“表单状态”,以便离开带有表单的页面的用户可以返回并继续编辑它,则必须独立于caches
执行此操作暴露给服务工作者的对象。 (caches
要求您使用Request
个对象作为键,并将Response
个对象存储为值。)
所以你可以使用IndexedDB
来做这件事,或者你可以使用localStorage
或其他任何东西来做。它独立于服务工作者,具体的隐私/安全考虑因素取决于实施者。