为什么 php 在打印数据时在客户端断开连接时中止,否则不会
Why does php abort on client disconnecting when printing data but not otherwise?
我正在使用使用php和javascript的SSE。
我有一个循环(出于开发目的,生命周期为 15 秒),它贯穿并添加"开始连接"、"仍然在这里"(休眠 1 秒后)和"结束连接"到数据库用于调试目的。
我发现当 php 脚本在没有"print"ing/"echo"ing/"var_dump()"任何信息的情况下运行时,无论客户端是否终止连接,脚本(读取"循环")都会运行完成。
但是,当我打印/回显/var_dump任何东西时 - 脚本会在用户终止后立即终止。
为什么存在这种差异?
通常,当客户端断开连接时,脚本应中止。有几种方法可以覆盖它:
- 在
php.ini
中设置ignore_user_abort
选项。 - 在
httpd.conf
中设置php_value ignore_user_abort
选项。 - 在 PHP 脚本中调用
ignore_user_abort()
。 - 在 PHP 脚本中使用
register_shutdown_function()
注册关闭函数。
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- JavaScript打印功能使日历停止工作
- esri javascript异步打印
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- jQuery/JavaScript在线公文包表单-打印样式表
- 如何打印嵌套对象的所有值
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 打印预览没有应用程序页眉和页脚的html表格
- 正在打印图表上的文本
- Rhino打印功能
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 服务器上的Meteor客户端断开连接事件
- 如何用javascript打印php数组
- Javascript,从静态函数中打印全局对象
- 试图打印/调用/或提醒数组中的对象:Getting Undefined
- markrwithlabel.js(第三方)原始文件链接断开
- 按压“;输入“;将值打印到控制台日志
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 为什么 php 在打印数据时在客户端断开连接时中止,否则不会