【发布时间】:2018-06-15 14:56:03
【问题描述】:
假设我们有一个 Ajax 调用。这只是一个例子:
function delete_mov(id){
$.ajax("delete_mov.php?id="+id
)
.success(function(){
$('#message').("Movimento "+id+" correttamente cancellato");
})
.fail(function(){
$('#message').("Problemi a cancellare il movimento "+id);
});
}
它将按预期工作。假设后面的 PHP 需要一些时间来执行,并且 php 代码在完成执行步骤时会发送一些消息。例如:
<?php
//do first part of code
echo "First step completed";
//do second part of code
echo "Second step completed;
//do third part of code;
echo "Third step completed;
//do last part of code
//send success message back to Ajax
?>
我想做的是在每条消息被 PHP 回显时从 ajax 调用接收回,以便消息 div 将随着每条消息一个接一个地更新。可行吗?是否可以在请求和响应之间发送一些消息?
【问题讨论】:
-
我相信 PHP 会执行所有这些并一起发送。 ajax 调用需要多长时间?
-
每条消息一个接一个地查看需要足够的时间
-
您可以使用 2 个 ajax 调用。一个完成工作的人。第二个将检查代码到达的位置。您可以创建一个将数据放入会话变量的逻辑。在检查期间,您可以检查当前状态的会话变量
-
问题是在同一个 Ajax 调用中是否可行。我不是在寻找解决方法。
-
没有。您不能在单个 AJAX 调用中执行此操作。您需要进行主要调用,然后进行单独的 AJAX 调用,这些调用会转到另一个页面,该页面报告第一个请求的状态(因此您将需要一些识别该操作的方法)。如果这是一个运行时间很长的操作,Websockets 可能会更好地解决这个问题