目前遇到一个问题,有一个记录日志的功能,在fastcgi_finish_request之后执行
有一种情况是 如果在浏览器不断刷新页面,结果是每次都会记录下来,但逻辑上需要是除了最后一次刷新的,前几次刷新的请求都不应该被记录
那么,如何判断一个链接是不是被client端主动关闭的?
就像这种:
目前遇到一个问题,有一个记录日志的功能,在fastcgi_finish_request之后执行
有一种情况是 如果在浏览器不断刷新页面,结果是每次都会记录下来,但逻辑上需要是除了最后一次刷新的,前几次刷新的请求都不应该被记录
那么,如何判断一个链接是不是被client端主动关闭的?
就像这种:
感觉像个伪需求。。。
如果是你说的那种短时间内多次请求的,那应该是再你记录的时候进行去重处理,而不是在请求这边做处理
还有就是php是无法感知连接是否断开的,只有发送数据的时候才能感知。
2 回答1.5k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答862 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答920 阅读
1 回答903 阅读
1 回答833 阅读
连续不断的刷新会导致浏览器取消掉前面的HTTP请求。
PHP有个 connection_status() 函数可以用来判断当前HTTP请求的状态。
被取消掉的HTTP请求的状态应该是异常状态。
你可以根据这个来判断个试试。
注意keep-alive可能影响这个函数的返回值。建议关闭keep-alive功能。