5

如果我进行 AJAX 调用,如果用户按下“ESC”或离开该页面,AJAX 调用会被取消吗?

如果 AJAX 调用被取消,我的 PHP 脚本会继续运行直到它完成它正在做的事情(前提是没有达到时间限制或任何其他服务器配置停止。),还是该进程会同时被杀死它所属的 Apache 孩子?

如果该进程确实被 Apache 子进程杀死,即使它没有完成,那么保持它活着的最佳方法是什么,或者我应该考虑哪些其他选择?(ZendX_Console_Process_Unix 不是一个选项)。

谢谢!

后来的发现:

如果我在 Firefox 中点击“ESC”(在 firebug 中检查),AJAX 调用实际上会被取消。PHP 进程继续进行,不受按 ESC 或关闭选项卡的影响。

4

2 回答 2

3

如果服务器进程在用户结束 ajax 调用(关闭窗口,或移动到另一个网站)之前启动,那么它将一直执行到最终结果。但是一个中断的ajax调用(意味着数据的传输没有完成)服务器不会处理这个调用。

注意:点击 ESC 本身不会结束 ajax 调用,除非您对按键行为进行了 javascripted。

于 2009-04-02T12:54:27.373 回答
-1

注意...如果您从超链接调用 AJAX 调用,使用 href 属性,然后是,用户可以按 ESC 并停止传输。

<a href="javascript:doFoo();">This can be canceled by pressing ESC</a>

<a href="#" onclick="doFoo();">This can NOT be canceled by pressing ESC</a>
于 2009-04-02T13:07:54.597 回答