【发布时间】:2011-10-14 17:17:17
【问题描述】:
我有以下问题:
通过 Ajax 调用 PHP 脚本。脚本本身使用以下几行关闭连接
ignore_user_abort(true);
header("Content-Length: 0");
header("Connection: close");
flush();
然后开始使用 phpMailer 在后台发送一堆邮件(在循环中并在每封邮件之后使用 sleep(1) - 将来我希望这是在发送 5 封邮件后的随机秒数)。使用 FireBug,我可以看到与脚本的连接直接终止。邮件也正在发送中。
但是,当脚本在后台运行时,我无法打开任何页面 - 它们会一直加载,直到后台脚本显然完成。奇怪的是:该脚本似乎并没有阻止整个服务器,因为连接限制仅适用于启动后台脚本的浏览器。因此,在我在 FireFox 中启动脚本后,我仍然可以在 Chrome 中访问服务器上的页面。
可能是什么原因?每个浏览器(每个会话,即......)是否有打开 MYSQLi 连接的限制 - 我在这个上找不到任何东西......或者浏览器(尽管 FireBug 说连接已终止)仍在等待脚本的响应?
我该如何解决这个问题? 提前感谢您的帮助。
【问题讨论】:
标签: php ajax background connection phpmailer