ajax邮件请求混淆的顺序

时间:2010-07-04 07:04:20

标签: php jquery ajax post

我有一个页面,用户将数据(通过ajax)发送到php页面,该页面将数据输入到数据库。但是,偶尔检查数据库时请求会出现故障。

基本上,用户在事件发生时输入事件并点击提交将其发送到数据库。有时,用户在发送之前会记录2个事件,在这种情况下,一次发送1个事件。这种情况是偶尔切换的。

以下是相关代码。

    i = 0;
    while (event[i]) {

        var post_data =  //post data for event[i]

        $.ajax({  
            type: "POST",  
            url: "save_event.php",  
            data: post_data,
        }); 

        event.splice(0,1);
    }

Event []是一个包含用户提交的事件的数组。每个事件都是具有各种属性的对象。通常,数组中只有一个对象,但有时候有2.我删除了我执行post_data的部分,因为它跨越了3行。

也许有一半时间有两个事件,它们在数据库中被颠倒了。有没有办法可以消除它?或者它完全取决于服务器处理的时间长度,有时它会在完成第一个处理之前完成第二个?

2 个答案:

答案 0 :(得分:2)

由于AJAX请求是异步并行发送的,这完全取决于浏览器和服务器的处理时间。您可以添加async: false选项,但这会在请求期间冻结浏览器,因为它们将不再是异步的。

我建议你在数据库中添加一个订单栏。

var post_data = { order: i, ... };

另一种选择是发送包含所有数据的单个AJAX请求。

答案 1 :(得分:1)

如果订单有问题,那么要么发送序列号并在服务器中找出它,要么同时发送所有事件。