“Service Worker”是否支持离线 HTML 表单数据?

Daw*_*utt 4 javascript security caching privacy service-worker

Service Worker本质上充当位于 Web 应用程序之间的代理服务器。

我关心的问题:ServiceWorker是否也支持离线表单?- 如果是这样,那么我的其他担忧是:

  1. 客户端不完整的 HTML 表单数据存储在哪里(存储、会话、本地、数据库)?
  2. 以什么形式存储用户填写的数据(加密等)
  3. 数据安全/隐私如何解决?返回的用户是同一个用户吗?- 如果一个用户在公共场所填写了表单并失去了互联网连接并留下了不完整的表单并继续,现在下一个直接用户可以看到不完整的表单数据,即最后一个用户留下表单的位置。

Jef*_*ick 5

首先,服务人员可以做很多事情。他们可以访问IndexedDB,因此始终可以从受控页面或服务工作线程的上下文中保存和加载任意数据。

\n\n

但是,这一切都不会因为注册了 Service Worker 而自动发生。\xe2\x80\x94a 默认情况下,Service Worker 绝对不会执行任何操作。仅当您在 Service Worker 中编写代码来挂钩不同的事件(installfetchmessage等)时,事情才会变得有趣。

\n\n

假设,如果您要在 Service Worker 中编写代码,缓存 HTML 资源的 HTTP 响应,然后响应fetch使用缓存的响应响应请求 URL 的事件,那么浏览器将返回并呈现与以下内容相同的 HTML如果响应来自网络,就会出现这种情况。不会有任何特殊的“表单状态”与 HTML 响应正文一起缓存。

\n\n

如果出于某种原因,您确实想要保存“表单状态”,以便离开带有表单的页面的用户可以返回并继续编辑该页面,则您必须独立于所公开的对象来执行此caches操作服务人员。(caches要求您使用Request对象作为键并存储Response对象存储为值。)

\n\n

所以你可以使用 来完成它IndexedDB,或者你可以使用localStorage,或者其他任何东西来做到这一点。它独立于服务工作者,并且特定的隐私/安全考虑取决于实施者。

\n