Jquery PHP ajax在发送时显示服务器响应

时间:2014-06-11 12:27:57

标签: javascript php jquery ajax

我想知道是否有可能显示服务器响应,因为它会在长时间的消耗请求中实时发送服务器响应。

上下文:

1)Jquery函数向服务器发送ajax请求并打开Dialog小部件,等待响应以更新Dialogs内容。

2)PHP服务器在一个耗时很长的过程中处理请求,20秒或更长时间,这是一个内部网站,用户知道丁字裤需要时间,需要管理很多东西。

当服务器正常工作时,我的PHP代码中有几个“echo”,有些东西要说,服务器还在处理其他事情以“回声”更多。

我的问题是只要服务器还没有完成,对话框就不会更新。

我想在浏览器收到部分响应后立即显示部分响应,并使用来自唯一函数的单个Ajax调用。

所以......实际上有两个问题:

我的浏览器是否正在接收“回声”?

如果是:我如何展示?

如果否:我如何发送直播?我该如何展示?

非常感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

我的浏览器是否正在接收“回声”?

不,ajax等待php完成,然后立刻抛出所有回声。

如果否:我如何发送直播?我该如何展示?

我不知道快速展示它的方法,但有一些解决方法。

创建多个ajax函数,这些函数将与服务器交互以使其看起来像实时。就像我在评论中说的那样。有了这个,我假设你知道ajax是如何工作的。

//javascript
function f1(){
    //call ajax to tell the server send a start response
}

//php
echo "<img src='loading.gif'>";
//or something like it.

//ajax function to make the server do the data.
function f2(){
    //call ajax to tell the server to start and save data in a session
    //Or something like it also set div to be changed to a hidden div.
}

//php
//run the required script. then echo a finished response that can be found by js.
//to make it seem extra live you can split this up in different parts.
//so you can show progress to the client side. like step 1 of 5 complete.

//ajax function 3 for finished
function f3(){
    //tell server to echo results once f2 is finished;
}

//php
//echo results loaded from where you saved it.
//probably session, delete the session when finished.