当客户端在执行脚本时停止加载页面时,PHP后端会发生什么情况?

当客户端在执行脚本时停止加载页面时,PHP后端会发生什么情况?,php,client,Php,Client,当客户端在加载时离开网站时,未执行的php代码会发生什么?例如: <?php // insert something in the database // user leaves the page / is closing the browser // insert again something in the database // echo something ?> 我读到,整个脚本总是被执行,直到有东西被发送到客户端(例如echo“sdasd”)。正确吗?一旦P

当客户端在加载时离开网站时,未执行的php代码会发生什么?例如:

<?php

// insert something in the database

// user leaves the page / is closing the browser

// insert again something in the database

// echo something

?>


我读到,整个脚本总是被执行,直到有东西被发送到客户端(例如echo“sdasd”)。正确吗?

一旦PHP检测到客户端断开连接(通常是在它尝试输出某些内容时),脚本将立即终止。所以通常情况下,你不能保证脚本会完成它的工作——你要么说即使连接关闭,脚本也应该继续,要么在脚本结束时有重要的事情要做,把它放在
有关更多信息,请参阅和

,因为所有PHP代码在服务器上执行,一旦调用,它将完成所有任务。在您的代码中,PHP将回显某些内容,但不会有人看到该回显:)好吧,所以我不必担心只有一半的脚本(以及我的数据库操作!)被执行?这只会导致一场大混乱;)Svetlio的评论不正确-在某些情况下,如果客户端(例如web浏览器)关闭连接,PHP进程可能会在完成之前退出。我还发现ignore_user_abort,但存在一个问题,即我正在使用shutdown函数进行错误处理(将错误保存在db中等)我不知道这两个功能是如何协同工作的……您可以在关机功能中检查连接状态