【问题标题】:Abort all AJAX calls on clicking a button & exit PHP script单击按钮并退出 PHP 脚本时中止所有 AJAX 调用
【发布时间】:2014-05-22 22:22:38
【问题描述】:

我有一个 PHP 应用程序,它对数据库执行冗长的处理操作。这些操作是使用 AJAX 调用处理的。当触发 AJAX 调用时,使用 JQuery BlockUI 插件 (http://malsup.com/jquery/block/) 会阻止 UI。在出现的消息中,我包含了一个按钮,用于在请求/处理时间过长时取消请求/处理。我想要以下行为:

单击“取消”按钮时,必须中止所有活动的 AJAX 调用。然后,由于调用的 PHP 脚本仍在服务器端运行,我将触发另一个 AJAX 调用以将 PHP 会话变量设置为 false。在 PHP 脚本中,我不断检查这个变量的值,如果它是假的,那么我退出()当前脚本。

谁能告诉我如何在按下“取消”按钮时触发所有 AJAX 调用的中止?此外,PHP 脚本中是否有办法启动一个单独的线程,该线程不断检查会话变量的值并相应地退出所有正在运行的 PHP 脚本/函数或至少当前的一个?

提前致谢, 杰瑞米

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    您可以使用.abort() 取消 ajax 请求。 至于在请求被取消时终止 PHP,您可以使用ignore_user_abort

    您可以使用 PHP 工作者来避免让用户等到 PHP 完成,google php workers。你会发现 IronMQ 和其他东西应该足以让你继续前进。

    【讨论】:

    • 非常感谢您的快速回复!我一定会看看那些 PHP 工作者和 ignore_user_abort 以停止 PHP 并避免用户不得不无休止地等待。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多