2010-11-01 63 views
1

在长服务器进程,服务器可以逐步编写响应, 像:AJAX - 从长服务器获取数据调用

复制100个文件完成后,

10秒后:

归档文件完成,

30秒后:

完成删除临时文件,

和....

是否有可能完成了ajax之前获取该流,并将其展示给用户?

回答

0

您可以使用两个异步回调。一个用于执行保持会话变量值更新(删除文件数)的处理(删除文件或其他)。另一个异步回调可以在设置的超时时间内检查此会话变量的值,然后相应地更新GUI,

0

即使您将超时设置为足够高以捕获全部为使用将不会得到任何反馈,直到它完成。

与多个状态轮询去是唯一的出路。

但取决于您的服务器运行方式,可能会有一些怪癖想到。

例如,IIS每个会话只使用一个线程,因此来自同一客户端的两个同时呼叫将相互处理。

如果您发布了一些需要时间处理的ajax或iframe,如文件上传,那么该调用会阻止会话,并且任何状态页都需要无会话才能够直接响应。