cURL和ajax结合超时

时间:2018-01-02 20:31:34

标签: javascript php jquery ajax

我正在向一个超时为10000(即10秒)的通过jQuery运行ajax请求。 ajax请求调用本地PHP脚本,并且在脚本中我向外部站点发出cURL请求,其自身超时为30秒。假设我的ajax请求需要8秒,然后我的cURL请求需要4秒。我原来的ajax请求会抛出错误吗?或者,如果连接到我的本地脚本需要10秒以上,原始的ajax请求是否会抛出错误?

2 个答案:

答案 0 :(得分:2)

如果你有某种超时,它将在设定的时间后调用,所以在你的情况下,10s。 您的完整请求AJAX + cURL必须少于此时间。

但使用异步任务的最佳方法是使用回调或承诺,这样你就可以在更新视图之前等待结果

答案 1 :(得分:1)

AJAX调用超时将胜过您在PHP中设置的任何超时,因此基本上AJAX会在10秒后超时或“抛出错误”,即使您的脚本将继续运行30秒,如您在示例中所示。

重要的是要注意,即使AJAX已经超时,你的PHP脚本(电子邮件,数据库调用)中发生的任何处理都会继续发生,但是由于AJAX已超时,因此浏览器上不会显示任何内容。

理想情况下,您需要调整代码,以使两个超时类似,因为它可能会导致意外行为。例如,用户在认为发生故障并且发生多个电子邮件或数据库插入后多次单击按钮。