![]() |
1
13
对于您的特定示例,使用数据库事务(如Ignacio所提到的)将是更合适的方法。
在其他情况下,您可能希望确保用户不能提前中止,但与数据库无关。例如,如果更新数据库然后发送邮件,则不希望用户能够在邮件发出之前停止该过程。在这种情况下,
但是,请注意,由于客户端中止连接而导致的管道中断不会停止执行。
马上
,仅在下次尝试写入脚本输出时。这可以通过电话
当然,无论如何,您应该以这种方式将操作逻辑与页面内容分离开来。 从 http://php.net/manual/en/function.ignore-user-abort.php#refsect1-function.ignore-user-abort-notes
|
![]() |
2
2
如果您需要多个查询,要么完全发生,要么根本不发生,那么您应该正确地使用事务处理,而不是在问题上使用绷带。 如果请求涉及冗长的计算,并且用户认为他们根本不需要结果,那么远程端中止请求可能很方便。 |
![]() |
3
1
你可以设定
不过,我不会这么做的。我宁愿让php页面在命令行上启动另一个php实例,在后台执行查询,例如使用
另外,它可能是您的基本流概念被扭曲了。如果用户中止了计算的执行,您可能无论如何都应该正确地回滚它——但这取决于正在执行的操作的性质。 |