我仍然对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/

10-12 04:01
查看更多