作为开场白,我知道这不是一个很好的问题,也很难解释。
我有一个PHP脚本,需要5-10分钟来运行。我不希望用户不得不等待它。如果我使用jquery ajax“触发”脚本,然后用户离开该页面或关闭浏览器(并且不等待响应(如果有的话)(如果有),脚本仍将完全执行(假设没有错误等)。
谢谢!
发布于 2013-09-11 02:31:33
一旦服务器接收到带有数据的AJAX请求,它将照常处理,即使您关闭页面或窗口也是如此。如果您在服务器收到AJAX请求之前关闭浏览器窗口,则不会对其进行处理。
此外,如果AJAX请求返回任何类型的数据或显示消息,建议您保持窗口打开,以便有一些“监听”页面来监听服务器的请求响应。
发布于 2013-09-11 02:33:03
在您的PHP脚本中,您可以调用ignore_user_abort(true)函数,这将导致脚本运行,而不管用户是否关闭页面。
发布于 2013-09-11 02:33:30
如果您有权访问以下命令行,则可以使用命令行:
php /loc/to/file.php这没有超时,可能比port:80 (浏览器调用phpfile)更快。
或者通过php的exec()调用另一个文件中的主php文件
<?php
exec("php /loc/to/file.php > /loc/to/result.txt");
?>您可能希望使用results.txt的目录shell_exec(),并且文件本身需要是可写的。“大于”符号将phpfile的输出写入result.txt。如果php将回显123,那将是result.txt的内容。
5到10分钟是一个很长的时间,你可能想要检查你的代码是否有改进。如果您正在使用一个数据库,在您使用分配列上添加索引(一个索引),可以节省大量的时间
https://stackoverflow.com/questions/18726247
复制相似问题