计算完全呈现的请求

时间:2012-05-13 22:36:44

标签: python html django browser django-middleware

我不是Django的新手(1年工作经验),但我有一个我无法处理的奇怪任务。 所以我必须编写写中间件来编写请求,但只有那些没有被客户端中止的(在浏览器中完全呈现的那些)。

我发现当客户端中止连接时,服务器(Python)抛出errno 32 Broken Pipe,因为它来自对套接字的不成功写入[我认为连接服务器 - 客户端是TCP,所以这并不奇怪]。

但问题是我无法找到一种方法来检查浏览器是否完全呈现页面或检查是否发生了错误(当然该错误可以有另一个来源,但这将是一个良好的开端)。

哦,我不想使用JS(使用JS它是一块蛋糕)但我可以使用HTML5(如果它可以帮助...)

1 个答案:

答案 0 :(得分:0)

我可能找到了你问题的答案,即execute some code when the HTTPResponse has been sent。然后,您可以在页面完全发送到客户端后增加所需内容。

示例子类HttpResponse并在视图中显式返回派生类的实例。如果您有许多不想覆盖的视图,也许您可​​以在子类定义

下尝试这段代码
HttpResponse.__bases__ += (FullLoggingHttpResponse,)