2011-10-07 57 views
0

我正在调用一个需要50分钟才能发送响应的cgi脚本。我需要保留我的xhr活动直到响应来自该cgi。 如何做到这一点? 它似乎在某些默认时间后自动超时请求超时。XMLHttpRequest在响应到达之前超时

+2

尝试优化该CGI脚本,50分钟太多:) – Ankit

回答

0

您可以使用:

xhr.timeout = 10000; 
xhr.ontimeout = timeoutFired; 

用于此目的

+0

感谢您的答复..但什么是timeoutFired ?? – Ved

+0

timeoutFired将会是你的函数,它会在超时发生时被调用(例如,如果你想在一段时间后忽略你的请求,那么你可以使用这个函数) – Ankit

0

我不认为你应该做这个内嵌的请求。另一种方法是将你的请求作为一个工作提交给一些后端进程/线程/消息队列,并存储一个引用以便你可以访问结果。在数据库甚至文件中,一旦处理完成。

直到结果可用,您可以显示一些“更新”文本或旋转图标,让用户知道发生了一些事情。

对于那段时间我不会依赖于一个开放的HTTP连接。

+0

Thnx的回复,但任何我需要做的这按照要求进行。实际上用户在cgi调用完成之前不应该做任何事情。 – Ved

+0

@ adn295:为此,只要显示一个加载图像(禁用背景,以便不执行任何操作),一旦发送请求(检查xmlhttprequest请求发送的代码)并在收到响应后删除该图像。 – Ankit

相关问题