一尘不染

使用浏览器后退按钮返回时清除表单中的所有字段

html

当用户使用浏览器后退按钮时,我需要一种清除表单中所有字段的方法。现在,浏览器会记住所有最后的值,并在您返回时显示它们。

关于我为什么需要它的更多说明,
我有一个禁用的输入字段,该字段的值是使用算法自动生成的,以使其在特定数据组中唯一。一旦我提交了表单并将数据输入数据库,用户就不能再次使用相同的值来提交相同的表单。因此,我首先禁用了输入字段。但是,如果用户使用浏览器的后退按钮,则浏览器会记住最后一个值,并且相同的值会保留在输入字段中。因此,用户可以再次提交具有相同值的表单。

我不了解的是,当您按下浏览器的“后退”按钮时会发生什么。如果页面大小在浏览器缓存限制之内,则似乎是从缓存中检索了整个页面,而无需联系服务器。当您按下浏览器后退按钮时,无论如何设置浏览器,如何确保从服务器加载页面?


阅读 271

收藏
2020-05-10

共1个答案

一尘不染

现代浏览器实现了称为后向缓存(BFCache)的功能。当您单击“后退/前进”按钮时,不会重新加载实际页面(并且永远不会重新运行脚本)。

如果您在用户按下后退/前进键的情况下必须执行某些操作,请监听BFCache pageshowpagehide事件。

伪jQuery示例:

$(window).bind("pageshow", function() {
  // update hidden input field
});
2020-05-10