簡體   English   中英

回顯到AJAX回調后執行PHP

[英]Execute PHP after echo'ing to AJAX callback

讓我們有這個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繼續執行腳本的同時,可以盡早關閉連接。

您將需要定義ignore_user_abort(true); 在您的PHP腳本中並調用flush(); echo $response;之后 腳本繼續執行,但是連接將關閉,導致執行Ajax回調。

您將需要拆分處理。 只需注冊用戶的請求,然后再處理即可。 有幾個所謂的消息隊列或工作隊列可用於PHP。 您可能想看看RabbitMQ

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM