我的网络应用程序必须处理并提供大量数据才能显示特定页面。有时,用户在服务器仍在忙于处理页面时关闭或刷新页面。这意味着服务器将继续处理数分钟的数据,只将其发送给不再监听的客户端。http服务器能检测到客户端已经取消了他们的请求吗?
是否有可能检测到连接已断开并对其作出反应?
在这个特定的项目中,我们使用Django和NginX,或者Apache。我认为这是可能的,因为Django开发服务器通过打印Broken Pipe异常来对已取消的请求做出反应。我很想让它引发我的应用程序代码可以捕获的异常。 It appears JSP can do this。 So can node.jshere。
或者,我可以在有问题的页面上注册卸载事件处理程序,让它执行一个同步XHR,请求取消该用户的先前请求,并进行某种进程间通信以实现此目的。也许,如果较慢的数据处理都交给了另一个进程,我可以更容易地识别和杀灭,而不杀死响应过程...
我认为无状态是正确的无字连字,:) – jerjer 2010-04-16 10:16:10
@jerjer - 感谢您的更正:) – Oded 2010-04-16 10:17:16
这似乎很奇怪,因为TCP应该能够做到这一点。我想有些东西在抽象中会丢失。 – 2010-04-16 10:20:01