Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中,当服务器处理页面时,用户转到另一个站点时会发生什么?_Php_Web Services_Email - Fatal编程技术网

在php中,当服务器处理页面时,用户转到另一个站点时会发生什么?

在php中,当服务器处理页面时,用户转到另一个站点时会发生什么?,php,web-services,email,Php,Web Services,Email,若用户向服务器发送邮件并开始处理,则在这样做时不向用户发送任何内容(可能需要几秒钟,例如,通过外部服务发送邮件),用户在完成之前转到另一个站点或页面 是否通知服务器 服务器什么时候放弃 服务器是否尝试完成处理 有没有办法在php中使函数“原子化”,这样一旦开始,它就可以保证完成?用户客户端浏览器的默认和正确行为是,它应该通知页面加载已被取消-原因无关紧要-用户按下后退按钮、停止按钮,单击其他链接或刚刚关闭浏览器 在PHP中,默认情况下,服务器收到此通知并退出处理页面。这取决于php.ini指令i

若用户向服务器发送邮件并开始处理,则在这样做时不向用户发送任何内容(可能需要几秒钟,例如,通过外部服务发送邮件),用户在完成之前转到另一个站点或页面

是否通知服务器

服务器什么时候放弃

服务器是否尝试完成处理


有没有办法在php中使函数“原子化”,这样一旦开始,它就可以保证完成?

用户客户端浏览器的默认和正确行为是,它应该通知页面加载已被取消-原因无关紧要-用户按下后退按钮、停止按钮,单击其他链接或刚刚关闭浏览器

在PHP中,默认情况下,服务器收到此通知并退出处理页面。这取决于php.ini指令
ignore\u user\u abort
的设置-请参阅

服务器在设置
ignore\u user\u abort
指令时运行。如果将其设置为false(默认),则它将停止处理请求。若设置为true,那个么它将完成请求,因为它不会收到任何关于用户中止的通知

不建议在服务器范围内使用
ignore\u user\u abort=true运行,因此我不建议您将其直接放在php.ini文件中。但是,您可以将此代码放在脚本的开头,这对于您来说是一个原子,并且在启动时始终完成的关键:

ini_set('ignore_user_abort', true);

完美的谢谢你说应该通知——实际上,最近的浏览器会这样做吗?是的,现在所有的现代浏览器都会这样做。