提交表单并继续工作的最佳方式

时间:2014-10-07 16:14:16

标签: php forms

我有一个PHP页面,带有一个表单,表单提交变量到PHP脚本,开始调用多个程序

如果我在同一标签中提交此表单,如果通过单击导航栏中的某个元素更改网址,表单将停止工作。

如果我将表单提交到另一个标签,除非管道完成工作,否则我无法点击原始标签中的任何内容。

我如何以最好的方式处理这个问题?

1 个答案:

答案 0 :(得分:2)

如果你对剧本的“结果”不感兴趣(让我们说它非常重要,那就完成了)

您可以将ignore_user_abort(true)添加到处理表单的脚本中:http://php.net/manual/en/function.ignore-user-abort.php

然后,无论用户是否切换页面,PHP都将完成脚本。

如果你需要脚本的结果,你需要实现一些异步的javascript来跟踪当前的处理状态 - 或让用户等到它完成。

根据此脚本的运行时间,您可能还需要增加时间限制: http://php.net/manual/en/function.set-time-limit.php

但请记住,大多数用户会等到他们收到一些提交的视觉反馈。因此,如果它需要10分钟,那么以同步方式处理请求可能是个坏主意,如果你真的不需要那样的话。