我仍然对Ajax技术感到困惑。而且,由于我仍在尝试掌握这项技术,因此我仍然无法回答我的这个问题。
关于与服务器发布数据。在普通的非ajax Web应用程序中,我通常在执行POST命令时执行PRG(后重定向-获取)模式。我了解到,这将防止出现双重提交问题,或者当用户尝试刷新页面或在浏览器中执行某些Back-Forward事务时。
在Ajax中,您不执行重定向,因为这将破坏ajax的目的,因为这是我正在关注的教程和书籍所说的
在jQuery中,当我执行
$(document).ready(function(){
$("#myForm").submit(function(){
$.post("test.htm", function(data){
alert("Successfully save data");
}, "json");
//prevent page refresh
return false;
});
});
并且用户执行,刷新(F5)或用户执行后退和前进浏览器事务。
我不冒双重提交问题的风险吗?浏览器是否会再次重新加载我的点击事件。
抱歉,如果这听起来对其他人来说太愚蠢了,但是我只想澄清对像我这样的新手的想法。
最佳答案
这取决于您将代码放置在何处,如果该代码位于按钮或其他事件的点击事件处理程序上,则重新加载页面不会重新触发点击。如果您只是完全按照页面上(或$(document).ready函数中的代码)放置该代码,则可以,重新加载页面将重新提交该请求。
由于ajax是由用户操作触发的,因此除非用户两次执行该操作,否则双重提交就不是问题。由于您仍在处理javascript中的所有内容,因此在执行一次该操作(即用户单击的按钮)后,很容易将其删除。
那有意义吗?希望能有所帮助。
关于jquery - Ajax 怀疑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3449042/