0

我有一个需要很长时间才能完成执行的 AJAX 请求。只要它通常超时并继续在服务器上运行。所以我在想,如果有某种方法可以启动它并偶尔轮询相同的请求以确保完整性,那将是理想的。

所以我的问题是你能运行一个服务器脚本,让它运行,偶尔轮询看看它是否完成了吗?如果有帮助/很重要,我正在使用网络方法在服务器上运行。

我不想将数据存储在数据库中,所以我不能只轮询数据库,所以我可以轮询脚本本身。

然而,我的后备是创建一个临时表,以便我可以从中调用以查看进度。或者有什么更好的方法吗?

4

1 回答 1

0

首先,如果您不希望 Ajax 请求超时,您可以使用 'timeout' 属性。用于 Ajax 调用的 XMLHttpRequest 对象具有“超时”属性。查看http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute上的文档。如果您使用 jquery 进行 Ajax 调用,您可以简单地执行类似的操作

$.ajax({
  url: 'your url',
  timeout: 100000 //this sets the timeout as 100 sec
  ……//your other attributes for the call
});

如果您有兴趣跟踪您的请求进度,那可能会有点困难,除非您想跟踪完整性(完成)、错误、成功或特定状态代码。jquery 为此提供了不同的(完整、错误、成功和状态代码)属性。如果您编写原生 ajax 调用(不带查询),onreadystatechange 事件可以跟踪以下内容。0 - 未发送,1 - 已打开,2 - 已收到 Response_Headers,3 - 正在加载(正在接收响应),4 - 已完成。更多信息请访问http://www.w3.org/TR/XMLHttpRequest/#event-handlers。我认为,跟踪除此之外的任何内容都可以让您在代码中开发、维护和监控。

于 2013-06-27T19:21:45.937 回答