【问题标题】:cURL and ajax combined timeoutcURL 和 ajax 组合超时
【发布时间】:2018-01-02 20:31:34
【问题描述】:

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

【问题讨论】:

  • 如果你有某种超时,它将在设置的时间之后被调用,所以在你的情况下,10s。您的完整请求 AJAX + cURL 必须小于这个时间。
  • 不是评论,您介意提交它作为答案,以便我接受吗?非常感谢。

标签: javascript php jquery ajax


【解决方案1】:

如果您有某种超时,它将在设置的时间后调用,所以在您的情况下,是 10 秒。 您的完整请求 AJAX + cURL 必须小于这个时间。

但使用异步任务的最佳方式是使用回调或承诺,因此您可以在更新视图之前等待结果

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      相关资源
      最近更新 更多