是否可以使用jQuery .post
获取多个回调,以便将图像的ajax上传到php?
我正在向服务器发送图像以通过二进制字符串进行处理,并且希望在图像上传然后处理图标时具有前端显示状态。
目前我正在使用标准.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'
答案 0 :(得分: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};
当然这仍然会立即发送回调,这可能不是你想要的。
我唯一可以想到的是,如果你需要尝试按顺序进行操作就可以使用了 冲洗:
How to flush output after each `echo` call?
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);