javascript - echo'ing 到 AJAX 回调后执行 PHP

标签 javascript php jquery ajax json

让我进行这个 ajax 调用:

App.prototype.askServer= function(obj) {

    return $.ajax({
        type: "POST",
        dataType: 'json',
        url: 'php/ajax.php',
        data: {
            stuff: obj
        }
    }).success(function(data) {
        console.log(data);
    });
}

我的 ajax.php 看起来像这样:

<?php

$stuff = $_POST['stuff'];

// execute curl that takes 1 second

echo $response

// parse $response through multiple loops and save into files and databases
// takes 5 seconds

?>

一旦 PHP 脚本 echo 有内容,ajax 回调就会执行吗?或者它会等待整个 PHP 脚本被执行?换句话说:我的ajax回调会在1秒或6秒后执行吗?

我问的原因是因为我从 curl 中获得了相当大的 JSON。我想将其返回到 ajax 回调,然后我想将这些数据分开,将一些内容保存到数据库中,将其他数据保存到 JSON 文件中,等等。这需要一段时间,但客户端没有必要等待。

最佳答案

可以在 PHP 继续执行脚本时提前关闭连接。

您需要在 PHP 脚本中定义 ignore_user_abort(true); 并在 echo $response; 之后调用 flush(); 脚本继续执行,但连接将关闭,导致 Ajax 回调执行。

关于javascript - echo'ing 到 AJAX 回调后执行 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28167246/

相关文章:

javascript - 休息API : user-agent-based client (app) authorization

javascript - 使功能分别影响每个测验ID

php - 如何使用 PHP 修剪文本

php - 对mysqli_fetch_assoc()进行故障排除

javascript - JS处理 'input'按钮信息

javascript - 如果父级具有特定值,则希望将 CSS 类添加到子级

javascript - super 菜单的第三级不起作用

php - 使用纯 PHP 在现有的 Google 电子表格中插入行

javascript - Jquery改变背景颜色并平滑过渡

jquery - 为什么文档在 $(document).ready(); 中不需要像您在 jquery 中操作的其他元素那样的引号吗?