Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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
客户端Javascript是否可以在客户端工作时检测服务器何时关闭了http连接?_Javascript_Connection_Detect - Fatal编程技术网

客户端Javascript是否可以在客户端工作时检测服务器何时关闭了http连接?

客户端Javascript是否可以在客户端工作时检测服务器何时关闭了http连接?,javascript,connection,detect,Javascript,Connection,Detect,在我的应用程序中,客户端是浏览器中的一组Javascript函数,它执行一些工作,例如播放剪辑。 它使用XmlHttpRequest与服务器对话。 但是,服务器可以突然关闭连接,因为似乎没有其他方式可以中断客户端。 在播放剪辑时,客户端能否检测到连接已关闭,从而打印消息并擦除页面? 谢谢你的帮助。 谢谢 Anil您可能可以轮询XmlHttpRequest对象,因此只要每隔一段时间发送一次心跳信号,看看连接是否关闭。否则,服务器将不得不发送一些信号来告诉客户端它将要关闭连接。您可能可以轮询XmlH

在我的应用程序中,客户端是浏览器中的一组Javascript函数,它执行一些工作,例如播放剪辑。 它使用XmlHttpRequest与服务器对话。 但是,服务器可以突然关闭连接,因为似乎没有其他方式可以中断客户端。 在播放剪辑时,客户端能否检测到连接已关闭,从而打印消息并擦除页面? 谢谢你的帮助。 谢谢
Anil

您可能可以轮询XmlHttpRequest对象,因此只要每隔一段时间发送一次心跳信号,看看连接是否关闭。否则,服务器将不得不发送一些信号来告诉客户端它将要关闭连接。

您可能可以轮询XmlHttpRequest对象,所以只要每隔一段时间发送一次心跳信号,看看连接是否关闭。否则,服务器将不得不发送一些信号告诉客户端它将关闭连接。

如果剪辑流式传输到客户端,您可以停止为其提供服务

然而,似乎该剪辑正在下载,然后通过浏览器播放。在这种情况下,最好使用Cookieoff Fault所描述的看门狗方法:定期(每秒一次左右)轮询服务器,让它以微小的确认消息作出响应。当连接关闭时,让服务器以负面消息进行响应

不幸的是,如果不使用类似comet的系统,很难让服务器“发送”指示会话关闭的消息


但是要记住,一旦客户下载了一个剪辑,如果他们愿意的话,他们就可以完整地播放它。不幸的是,除了切换到流媒体方式之外,没有办法阻止这种情况。如果保护您的内容是一个优先事项,我建议进行此更改。

如果剪辑流式传输到客户端,您可以停止服务

然而,似乎该剪辑正在下载,然后通过浏览器播放。在这种情况下,最好使用Cookieoff Fault所描述的看门狗方法:定期(每秒一次左右)轮询服务器,让它以微小的确认消息作出响应。当连接关闭时,让服务器以负面消息进行响应

不幸的是,如果不使用类似comet的系统,很难让服务器“发送”指示会话关闭的消息


但是要记住,一旦客户下载了一个剪辑,如果他们愿意的话,他们就可以完整地播放它。不幸的是,除了切换到流媒体方式之外,没有办法阻止这种情况。如果保护您的内容是一个优先事项,我建议进行此更改。

服务器似乎无法通知客户端连接已关闭;然而,建议的轮询方法并不像通知那样有效

我通过指定在下一个Get请求时,客户端将被告知其会话无效来解决这个问题


这是通过URL重写实现的——在Javascript函数发送的每个请求上附加“JSSessionID=[id]”。servlet存储当前会话id。

服务器似乎无法通知客户端连接已关闭;然而,建议的轮询方法并不像通知那样有效

我通过指定在下一个Get请求时,客户端将被告知其会话无效来解决这个问题


这是通过URL重写实现的——在Javascript函数发送的每个请求上附加“JSSessionID=[id]”。servlet存储当前会话id。

感谢您的回复。但是Javascript是单线程的。是否存在某种可以注册的异常或回调?我想做的是,在连接关闭时清除(擦除)浏览器。是的,可以用Javascript创建计时事件。谢谢你的回复。但是Javascript是单线程的。是否存在某种可以注册的异常或回调?我想做的是,在连接关闭时清除(擦除)浏览器。是的,可以用Javascript创建计时事件。好吧,Javascript是单线程的。是否存在某种可以注册的异常或回调?我要做的是,在连接关闭时将浏览器擦干净(擦除)。也许会话id可以工作。我将尝试一下,然后发回。好的,Javascript是单线程的。是否存在某种可以注册的异常或回调?我要做的是,在连接关闭时将浏览器擦干净(擦除)。也许会话id可以工作。我会试试,然后寄回来。