当浏览器 window 关闭时,表单 / JavaScript 数据会发生什么变化?

What happens to form / JavaScript data when browser window is closed?

我有一个 html 表单,它在输入元素中收集数据,然后生成一个 PDF(使用 jsPDF)供用户下载(使用 Downloadify js)。收集的数据包含个人信息。

我需要知道的是,当用户导航到其他地方或关闭浏览器时,输入到输入元素中的数据(然后由 JavaScript 处理)是否会保留在浏览器内存中?window?

是的。即使用户导航到其他页面或关闭选项卡,表单数据也会保存在浏览器内存中。它将保存在临时浏览器自动填充缓存中。您可以通过对表单元素使用属性 autocomplete="off" 来禁用此功能。

您可以在此处找到有关自动完成属性的更多信息: http://www.w3schools.com/tags/att_input_autocomplete.asp

  1. 关闭自动完成功能。如果设置了自动填充将不会保存。
  2. 在响应中设置缓存 Headers 不缓存。浏览器不会缓存页面并在关闭时丢弃。

是的,它可能会在内存中保留一段时间。这是您无法控制的,并且会因浏览器和操作系统而异。

如果您的表单实际上并未提交至服务器,则自动完成不应存储它,尽管您可能需要添加 autocomplete="off" 以确保这一点。

处理完成后,您还可以使用 JavaScript 将表单值设置为空白。

document.getElementById('name').value = '';

您还可以在使用后将任何 JavaScript 对象设置为空。这不能保证数据不会保存在内存中的某个地方。如果这是一个问题,您可以鼓励用户在使用和注销操作系统后关闭所有浏览器 windows。 Chrome 等浏览器可以保留在内存中,即使所有 windows 都已关闭,因为如果设置了该选项,它可以存在于系统托盘中,因此注销将强制它关闭,同时用户可以轻松地执行此操作.