当用户在其Web浏览器中按停止时会发生什么?

Jon*_*ley 17 browser webserver httpwebrequest

如果调用的页面需要大量处理并且用户在结束前单击停止,浏览器是否只是在客户端停止请求?

或者是发送到服务器的"停止"消息,即处理被取消了吗?

Dar*_*rov 10

发生这种情况时,不会向服务器发送任何消息.当用户按下停止按钮时,浏览器只是暂停页面的呈现并忽略来自服务器的任何进一步的响应.

如果请求已经发送到服务器,则服务器通常会继续执行它.但是,根据服务器的实现,可能会检测到断开的连接.这意味着你不能依赖于它将在每种情况下继续存在的事实.

  • 但是,服务器可以检测丢弃的连接.连接断开后服务器是否会继续执行取决于服务器的实现,并且您不能依赖于它将在每种情况下继续运行的事实. (5认同)

bis*_*sko 5

实际上,它通过关闭连接来发送“停止消息”。仅当它仍在等待主请求的输出时(不是在完成下载内容并开始加载图像和内容时),这才是正确的。因此,当您收到连接关闭消息时,您可以检测用户是否按下停止按钮或连接出现问题。

以下是 PHP 用户手册的一些信息: http: //php.net/manual/en/features.connection-handling.php

附带说明 - 它始终取决于浏览器的实现,并且没有特定的方法可以确定用户是否按下了停止按钮或连接刚刚断开。

  • 这确实是一个非常重要且经常被遗忘的细节。虽然没有明确的“停止”命令,但可以检测到断开的连接。例如,这将默认中止当前正在运行的 PHP 脚本。当用户按下停止键时,这不会立即发生,因此即使按下停止键,脚本也可能完成执行(因为用户可能只是在等待服务器的输出缓冲区而不是脚本本身)。直接来自粘贴的网址:“但是,默认行为是当远程客户端断开连接时中止您的脚本。” (3认同)