是否可以使用jQuery .post
将图像ajax上传到php来获得多个回调
我正在通过二进制字符串将图像发送到服务器进行处理,并希望在图像上传后显示前端显示状态,然后显示处理图标。
目前我使用的是standard.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'
我在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};
当然,这仍然会同时发送回调,这可能不是你想要的。
如果你需要尝试按顺序获取东西,我唯一能想到的就是使用冲洗:
如何在每次"echo"调用后刷新输出?
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);