【问题标题】:PHP max_execution_time and multiple consecutive AJAX callsPHP max_execution_time 和多个连续的 AJAX 调用
【发布时间】:2016-05-29 20:17:14
【问题描述】:

所以,我知道 max_execution_time 将限制单个 php 脚本可以在服务器上运行的时间长度,但我想知道是否我有一个通过 ajax 调用另一个脚本的脚本,它们是否被认为是一个或两个脚本这样做的目的?

例如,如果我有一个 checkout.php 需要 10 秒才能运行,并且其中有一个对 submit_payment.php 的 ajax 调用需要 20 多秒,如果 max_execution_time 设置为小于 30 的东西?

对此进行扩展,如果在 submit_payment.php 完全解析并返回 checkout.php 之后,我可以 ajax 到另一个需要 10 秒的第三个 php 文件吗?

基本上,max_execution_time 是在 (10 + 20 + 10) 上进行检查,还是单独检查每个?

【问题讨论】:

  • 不,它是每个请求,但如果会话未关闭,您将无法发出进一步的请求(它正在阻塞)。

标签: php ajax timeout execution-time


【解决方案1】:

AJAX 请求发生在客户端的 javascript 中,而不是 PHP 中。一旦您返回客户端并开始处理 HTML 以解析并作用于 javascript 以进行 AJAX 调用,初始 php 请求就完成了。 AJAX 请求会产生一个新的 HTTP 请求,由 PHP 脚本处理。

PHP 是无状态的。每个请求(常规或 ajax)都被视为针对 max_execution_time 运行的单独脚本。只要每个请求都在限制下运行,您就可以将任意数量的请求串在一起形成一系列请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-20
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    相关资源
    最近更新 更多