代码之家  ›  专栏  ›  技术社区  ›  Galen

是否在“esc”上取消了通过Ajax调用的PHP进程?

  •  5
  • Galen  · 技术社区  · 6 年前

    如果我执行Ajax调用,如果用户按“Esc”或离开该页面,Ajax调用会被取消吗?

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

    如果这个过程确实被Apache子进程杀死了,即使它没有完成,那么最好的方法是什么,或者我应该考虑什么其他的选择?(Zendx_控制台_进程_Unix不是一个选项)。

    谢谢!

    后来的发现:

    如果我在firefox中点击“esc”(签入firebug),Ajax调用实际上会被取消。PHP进程继续运行,不受按Esc或关闭选项卡的影响。

    2 回复  |  直到 15 年前
        1
  •  3
  •   pixeline    15 年前

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

    注意:按Esc本身不会结束Ajax调用,除非您用javascript描述了keypush行为。

        2
  •  -1
  •   scunliffe    15 年前

    一个音符…如果您使用href属性从超链接调用了Ajax调用,那么是的,用户可以按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>
    
    推荐文章