php - 让 jquery ajax (php) 脚本一个接一个地运行,而不是同时运行

标签 php javascript jquery

这是代码 - 一旦文档被加载(在 $(document).ready(function(){ 内)它就会运行完成了吗?我想在页面上创建更多的 ajax 调用,但是在所有排队的调用完成之前它们不会执行。如果每个调用都在另一个调用执行后运行,这将使新的 ajax 调用有机会到达最前面下一个脚本代替所有 30 个脚本的末尾。如有任何建议,我们将不胜感激。

for (var x=0;x<=30;x++)
{
emailnumber = '<?php echo $storage->countMessages(); ?>'-x;
dataString='emailnumber='+emailnumber+'&url=<?php echo $url; ?>&email=<?php echo $email_address; ?>';

    $.ajax({

       type: "POST",

    url: "phpdocument.php",

    data: dataString,

    success: function(msg){

            $('#results').append(msg);

        }

    });


}

编辑:我应该在某处使用 setTimeout 函数吗?

最佳答案

ajax() 调用的选项中将 async 设置为 false。但是,请注意:同步 Ajax 请求可能会锁定浏览器。这是因为 Ajax 请求将停止进一步执行,直到完成。换句话说,在所有 Ajax 请求完成之前,您不会退出 for 循环。

for (var x = 0; x <= 30; x++) {
    emailnumber = '<?php echo $storage->countMessages(); ?>' - x;
    dataString = 'emailnumber=' + emailnumber + '&url=<?php echo $url; ?>&email=<?php echo $email_address; ?>';

    $.ajax({

        type: "POST",
        async: false,
        url: "phpdocument.php",

        data: dataString,

        success: function(msg) {

            $('#results').append(msg);

        }
    });

}

关于php - 让 jquery ajax (php) 脚本一个接一个地运行,而不是同时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755944/

相关文章:

javascript - 如何在一个 google 帐户中跨多个域跟踪 Google Analytics?

php - php 上的双重 URL 错误

php - Laravel 中 AJAX POST 请求后出现 422 无法处理的实体错误

php - 排除已注册的事件

javascript - 在重新加载时使用 jQuery 保存新的点击更改(新页面)

jquery - 在特定 SharePoint 功能区栏按钮上应用 CSS?

php - 我需要的工具来证明通过 https 发送的数据已加密

javascript - 如何在一个页面中使用多个脚本

javascript - 主干执行 POST 请求而不是 PUT 请求

javascript - 当我使用 jquery load 时,表单没有序列化