0

我对 Django 并不陌生(1 年的工作经验),但我有一个奇怪的任务,我无法处理。因此,我必须编写中间件来计算请求,但仅限于那些未被客户端中止的请求(那些在浏览器中完全呈现的请求)。

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

但问题是我找不到检查浏览器是否完全呈现页面或检查是否发生错误的方法(当然,该错误可能有其他来源,但这将是一个好的开始)。

哦,我不想使用 JS(使用 JS 是小菜一碟),但我可以使用 HTML5(如果它可以帮助...)

4

1 回答 1

0

I may have found the answer to your question, that is execute some code when the HTTPResponse has been sent. You can then increment what you want after the page has been fully sent to the client.

The example subclasses HttpResponse and returns an instance of the derived class explicitly in a view. If you have many views you don't want to override, maybe you could try this piece of code under your subclass definition

HttpResponse.__bases__ += (FullLoggingHttpResponse,)
于 2012-05-13T23:25:02.877 回答