javascript重新加载

javascript重新加载,javascript,reload,Javascript,Reload,是否可以将javascript:location.reload(true)用作表单的action=而不让浏览器说“为了重新加载此页面,必须重新发送信息”或类似的话?表单操作当前由onsubmit=处理 如果用户来自发布数据,重新加载将始终询问有关重新发送信息的问题。很难回答任何具体的问题,因为我不知道你想做什么。这是浏览器历史记录中无法阻止的事情 更好的解决方案是使用PRG模式 如果只想重新加载页面而不提交表单,请尝试window.location=window.location在onsubmi

是否可以将javascript:location.reload(true)用作表单的action=而不让浏览器说“为了重新加载此页面,必须重新发送信息”或类似的话?表单操作当前由onsubmit=处理

如果用户来自发布数据,重新加载将始终询问有关重新发送信息的问题。很难回答任何具体的问题,因为我不知道你想做什么。这是浏览器历史记录中无法阻止的事情

更好的解决方案是使用PRG模式


如果只想重新加载页面而不提交表单,请尝试
window.location=window.location

onsubmit
事件中,您似乎正在使用AJAX请求处理表单,这就引出了一个问题:既然无论如何都要刷新页面,那么什么也得不到。我建议要么使用表单中的普通帖子,要么使用@Bob的解决方案(他通过先发帖使我免于打字)。如果您使用
window.location=window.location
请确保在您的
onsubmit
方法中发生的任何事情完成后调用它,否则您可能会引入竞争条件,在onsubmit方法完成数据发送之前它会重定向

编辑:

只要阅读你的评论,提供更多信息。同样,为了响应AJAX提交而重新加载整个页面完全违背了使用AJAX的目的。您确实应该考虑使用像jQuery这样的JavaScript库来帮助您。基本上,模式如下:

  • 使用AJAX处理提交
  • 请求完成后,使用AJAX仅请求页面的更改部分
  • 用对第二个AJAX调用的响应替换或追加页面上的内容
  • 清空表格以便再次填写

  • 这通常发生在方法为“post”时。如果你使用“get”,你就没有消息了。但我急于想知道是否有更好的方法。基本上,我是在尝试构建表单,但当用户提交表单时,我不想让页面移动到任何地方,但我想让它重新加载提交的新信息。听起来阅读XMLHTTPRequest是最好的选择。您所描述的是AJAX的功能。+1最好先实现P/R/G,这样它在任何地方都能很好地工作,如果您真的需要,再在顶部添加“渐进增强”XMLHttpRequest sauce。mozilla开发区提供了大量关于AJAX细节的有用信息。JQuery及其文档也可以为您提供一种非常简单的AJAX实现方法。