0

私はDjango(1年間の実務経験)に不慣れではありませんが、対処できない奇妙なタスクがあります。したがって、リクエストをカウントするミドルウェアを作成するために作成する必要がありますが、クライアントによって中止されなかったもの(ブラウザーで完全にレンダリングされたもの)のみです。

クライアントが接続を中止すると、サーバー(Python)がソケットへの書き込みに失敗したためにerrno 32 Broken Pipeをスローすることがわかりました[接続サーバークライアントはTCPであるため、何も問題はありません]。

しかし、問題は、ブラウザがページを完全にレンダリングしたかどうかを確認したり、そのエラーが発生したかどうかを確認したりする方法が見つからないことです(もちろん、そのエラーは別の原因である可能性がありますが、良いスタートです)。

ああ、私はJSを使いたくありません(JSではそれは簡単なことです)が、HTML5を使うことができます(それが役立つなら...)

4

1 に答える 1

0

私はあなたの質問に対する答えを見つけたかもしれません。それは、HTTPResponseが送信されたときにいくつかのコードを実行することです。ページがクライアントに完全に送信された後、必要なものをインクリメントできます。

この例では、HttpResponseをサブクラス化し、派生クラスのインスタンスをビューで明示的に返します。オーバーライドしたくないビューが多数ある場合は、サブクラス定義でこのコードを試すことができます。

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