【发布时间】:2010-05-30 11:28:01
【问题描述】:
当用户发回 Web 表单并尝试刷新页面时 - 弹出“您要重新发送信息”对话框(不过 Opera 会静默工作)。为了避免这种情况,我们可以将浏览器重定向到我们希望在回发后显示的页面。现在,当用户刷新页面时,他重复了 get-request 并且没有弹出窗口。
一切正常,但发布/重定向/获取方法需要额外的往返。有没有更好的选择。例如,使用 ajax 异步发送表单数据?
提前感谢您!
【问题讨论】:
当用户发回 Web 表单并尝试刷新页面时 - 弹出“您要重新发送信息”对话框(不过 Opera 会静默工作)。为了避免这种情况,我们可以将浏览器重定向到我们希望在回发后显示的页面。现在,当用户刷新页面时,他重复了 get-request 并且没有弹出窗口。
一切正常,但发布/重定向/获取方法需要额外的往返。有没有更好的选择。例如,使用 ajax 异步发送表单数据?
提前感谢您!
【问题讨论】:
我认为您将很难让基于 AJAX 的解决方案在页面刷新和浏览器历史导航中幸存下来。一旦超过了一定程度的复杂性,就会有太多的状态需要管理。
PRG 模式解决了一些开销最小的基本可用性问题,请记住您的 POST 响应将没有正文内容。如果您要重用 HTTP 连接(持久 HTTP/Keep-Alive),则无需担心。
【讨论】: