-1

是否可以使用 jQuery.post将图像上传到 php 的 ajax 获得多个回调?
我正在将图像发送到服务器以通过二进制字符串进行处理,并且希望在图像上传后具有前端显示状态,然后是处理图标。

目前我正在使用标准的 .post 但理想情况下这是我正在寻找的场景 -
jquery:

$.post( 'process.php', { myvar:myvar}, function(data){

    if(data=='callback_1'){
        // process 1
    }else if(data=='callback_2'){
        // process 2
    }

}); 

php:

$myvar = $_POST['myvar'];

// after process 1
echo 'callback_1'

// after process 2
echo 'callback_2'
4

1 回答 1

0

我在 php 脚本中设置了一个数组

$r['callback_one'] = 'complete';
$r['callback_two'] = 'fail';

echo json.encode($r);

javascript:

r = JSON.parse(data);
if (r.callback_one === 'complete){//do something};

当然,这仍然会一次发送所有回调,这可能不是您所追求的。


如果您需要尝试按顺序获取东西,我唯一能想到的就是使用冲洗:

每次“回声”调用后如何刷新输出?

ob_end_flush();

# CODE THAT NEEDS IMMEDIATE FLUSHING

ob_start();

甚至可能发生的情况是,在服务器建立足够的字符来发送它认为值得发送的数据包之前,客户端不会从服务器接收数据包。

老答案:

您可以使用 ob_implicit_flush 来告诉输出缓冲关闭缓冲一段时间:

ob_implicit_flush(true);

# CODE THAT NEEDS IMMEDIATE FLUSHING

ob_implicit_flush(false);
于 2013-08-09T23:19:44.683 回答