2012-05-09 12 views
11

我相信大家都知道这种行为。您在网上填写表格,然后提交。提交之后,您会发现您填写了一些错误的数据。所以,你点击浏览器后退按钮。然后,有时表单中仍然会有你输入的数据(你希望在这种情况下),有时候不会。为什么在点击浏览器后退按钮时有时会清除HTML表单

当它被清除和没有时,我找不到任何连接。

一些答案,我在互联网上/计算器发现:

  • 的HTTPS连接,使用带有会议动态网站时,形式一直被清除
  • ,形式一直被清除

但两者他们肯定是错的。在浏览器返回正在使用https 正在使用会话之后,我看到了确实保留了表单数据的网站(如我自己的网站)。

所以请:任何人都可以解释我浏览器如何处理这些东西?

顺便说一句:我的任务是确保表格数据是而不是清除。

回答

6

我无法为所有情况提供确切答案。

作为Web开发人员,这里的规则,我一般遵循我制定的网站,以实现不让用户丢失数据的目标:在页面上(通过HTTP头)

  • 禁用所有缓存要保留。
  • 提交表单时,将所有数据捕获到会话(或其他临时存储)中。
  • 如果用户向后导航,浏览器将请求新版本的页面(因为您将其设置为永不缓存)。
  • 该页面具有查看会话/数据库/任何位置的逻辑,并根据上次输入状态重新填充所有字段。如果页面上有动态输入,则应该有足够的数据来重新创建它们。
  • 完成此过程后,请使用POST/Redirect/GET模式清除会话数据,并使用户难以返回到原始页面。

一些答案,我在互联网上/计算器发现:
1. HTTPS连接,使用带有会议动态网站时,形式一直被清除
2,形式一直被清除

我相信#1因浏览器/安全设置/场景而异。

假设2在所有情况下肯定都不是真实的(我刚刚描述的模式利用了会话和动态表单)。

+0

感谢您的回答。当然,你完全正确的做法。但是有时候这是相当多的工作(特别是如果你以后需要添加这种行为的话)。如果只有浏览器可以完成这项工作,生活会变得更加容易。这是我的问题所针对的地方。有没有办法让浏览器做这项工作!? – Gerwald

2

它是一个浏览器问题。当单击后退按钮时,浏览器的行为会有所不同。 这个问题被问之前这里Losing form data when clicking the back button on browser

+0

好的,当它是一个浏览器问题:什么浏览器的行为如何?例如。移动Safari? 如果是这样,如何让浏览器表现得像我想要的? (保留数据) – Gerwald

0

我觉得很有趣,你提供的链接在此之前,一个要求,但一个说,它的这个人回答。哦,也没有接受的答案.....

+0

关于_no接受的答案:Tim的答案很好,但是 - 他也提到过,这只是一个假设,而不是一个明确的答案。 – Gerwald

相关问题