我有一个PHP应用程序,可以对数据库进行冗长的处理操作。使用AJAX调用处理这些操作。当触发AJAX调用时,使用JQuery BlockUI插件(http://malsup.com/jquery/block/)阻止UI。在出现的消息中,如果时间过长,我会在按钮中取消请求/处理。我想要以下行为:
单击“取消”按钮时,必须中止所有活动的AJAX调用。然后,由于调用的PHP脚本仍然在服务器端运行,我将触发另一个AJAX调用以将PHP会话变量设置为false。在PHP脚本中,我不断检查这个变量的值,如果它是false,那么我退出()当前脚本。
有人可以告诉我如何在按下“取消”按钮时触发所有AJAX呼叫的中止吗?另外,在PHP脚本中是否有一种方法可以启动一个单独的线程来不断检查会话变量的值,从而退出所有正在运行的PHP脚本/函数,或者至少退出当前的脚本/函数?
提前致谢, 雷米
答案 0 :(得分:1)
您可以使用.abort()取消ajax请求。 至于取消请求时终止PHP,可以使用ignore_user_abort。
您可以利用PHP工作人员来避免让用户等到PHP完成后,谷歌php workers
。你会找到像IronMQ这样的东西,应该足以让你前进。