当一个长时间运行的服务器端脚本,客户关闭浏览器,服务器脚本会强制被停止执行么? 你自己试试做个大的循环,里面用sleep停顿一下,然后关闭浏览器。你再查找你代码预期的结果是否一致不就知道吗?这样够深刻吧? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 exit之类的确实可以按照正常逻辑方式推出程序,但是怎么知道是浏览器关闭了呢? 浏览器关闭是客户端的事,你用JS来判断之后再传给PHP吧! 不知道是否可以考虑使用关闭浏览器就触发事件的方式来做……我只是知道这样的事件触发方式JS就可以做到,但是不知道能否传值给server有人说的可以利用JS给PHP传值,我总是很怀疑! 不知道能不能,前面的那个任务还在服务器cpu队列中。用session不知行不行 "当浏览器请求的页面还没运算完成的时候,就关闭了浏览器"此时程序会终止,php会感知连接中断<?phpwhile(!connection_aborted()) { $fp = fopen("状态.txt","w"); fwrite($fp,"连接中断".time()); fclose($fp);}?>相关的说明见手册章 21. 连接处理注: 以下内容对 PHP 3.0.7 及更高版本适用。在 PHP 内部,系统维护着连接状态,其状态有三种可能的情况: 0 - NORMAL(正常)1 - ABORTED(退出)2 - TIMEOUT(超时)当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限(请参阅 set_time_limit() 函数)时,TIMEOUT 状态的标记将被打开。 您可以决定您的脚本是否需要在客户端中断连接时退出。有时候让您的脚本完整的运行会带来很多方便,即时没有远程浏览器接受脚本的输出。默认的情况是当远程客户端连接中断时脚本将会退出。该处理过程可由 php.ini 的 ignore_user_abort 或由 Apache .conf 设置中对应的“php_value ignore_user_abort”以及 ignore_user_abort() 函数来控制。如果您没有告诉 PHP 忽略用户的中断,您的脚本将会被中断,除非您通过 register_shutdown_function() 设置了关闭触发函数。通过该关闭出发函数,当远程用户点击 STOP 按钮后,您的脚本再次尝试输出数据时,PHP 将会检测到连接已被中断,并调用关闭触发函数。 ...... 求一个正则! 请教php扩展库tidy不支持中文怎么解决。 update执行关联表,在线等 WampServer配置问题 图片上传的功能,怎样把值(图片名)传到表单的隐藏域,再提交? 关于在线支付 二维数组怎么在""中显示? 请问怎样把本页面关闭而弹出另一个正常的页面?(在线等) 表单通过php操作数据库的问题,求助! Windows98下如何安装php? 关于分页类的疑问 请问怎样在网上发布用PHP+MYSQL做的网站?(在线等)
我只是知道这样的事件触发方式JS就可以做到,但是不知道能否传值给server
有人说的可以利用JS给PHP传值,我总是很怀疑!
此时程序会终止,php会感知连接中断<?php
while(!connection_aborted()) {
$fp = fopen("状态.txt","w");
fwrite($fp,"连接中断".time());
fclose($fp);
}
?>相关的说明见手册
章 21. 连接处理
注: 以下内容对 PHP 3.0.7 及更高版本适用。在 PHP 内部,系统维护着连接状态,其状态有三种可能的情况:
0 - NORMAL(正常)1 - ABORTED(退出)2 - TIMEOUT(超时)
当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限(请参阅 set_time_limit() 函数)时,TIMEOUT 状态的标记将被打开。 您可以决定您的脚本是否需要在客户端中断连接时退出。有时候让您的脚本完整的运行会带来很多方便,即时没有远程浏览器接受脚本的输出。默认的情况是当远程客户端连接中断时脚本将会退出。该处理过程可由 php.ini 的 ignore_user_abort 或由 Apache .conf 设置中对应的“php_value ignore_user_abort”以及 ignore_user_abort() 函数来控制。如果您没有告诉 PHP 忽略用户的中断,您的脚本将会被中断,除非您通过 register_shutdown_function() 设置了关闭触发函数。通过该关闭出发函数,当远程用户点击 STOP 按钮后,您的脚本再次尝试输出数据时,PHP 将会检测到连接已被中断,并调用关闭触发函数。 ......