页面刷新后的AJAX和PHP

时间:2013-07-08 10:08:34

标签: php ajax

我正在对一个需要很长时间才能运行的PHP脚本进行AJAX调用。现在,假设它需要20分钟才能运行。还假设我刷新或关闭然后打开了启动呼叫的网页。我的问题是:

  1. 我的PHP脚本是否停止运行?

  2. 如果它一直在运行,我怎样才能在刷新后强制回复页面?

  3. 感谢。

    ** * ** * ** * 的** * * 更新 * ** * ** * ** < EM> * ** *

    有人问为什么我的脚本需要很长时间。我认为没有解释以下内容是我的错:

    一个。此脚本仅供站点管理员使用,并且不适用于普通公众

    湾这个脚本将执行一些繁重的工作,例如数据操作和数据库相关的东西,并且需要很长时间才能运行

    ℃。我正在使用AJAX,所以我仍然可以返回到主页面,一个微调器显示脚本正在运行,而脚本实际上在后端运行,而回调函数将删除微调器并显示一个消息成功/失败状态。

2 个答案:

答案 0 :(得分:2)

不会它会停止运行。

您应该使用cron作业来运行一个需要20分钟的脚本。

不要忘记为该页面设置至少20分钟的时间限制!

答案 1 :(得分:2)

  
      
  • 我的PHP脚本是否停止运行?
  •   

是的,如果浏览器断开连接(将在刷新/关闭时),PHP将停止执行。您可以使用ignore_user_abort(true)来阻止这种情况,但我认为这不是您想要的最佳选择。

  
      
  • 如果它一直在运行,我怎样才能在刷新后强制回复页面?
  •   

不,因为连接已经消失,没有任何回复发送回复。在ajax调用它时,将更长的进程调用为后台进程更合适,并立即返回响应,使后台进程正常工作。您可以使用常规的ajax调用来查询进程是否完成(例如在完成时更新数据库)。

来自docs

  

但是,当远程客户端断开连接时,脚本的默认行为将被中止。