2012-05-13 3 views
0

저는 Django에 익숙하지 않습니다 (1 년간의 업무 경험).하지만 제가 처리 할 수없는 이상한 작업이 있습니다. 그래서 요청을 계산할 미들웨어를 작성해야하지만 클라이언트 (브라우저에서 완전히 렌더링 된 서버)에서 중단되지 않은 요청 만 작성해야합니다.완전히 렌더링 된 요청을 계산합니다.

클라이언트가 연결을 중단하면 서버 (파이썬)가 errno 32를 발생시키는 것을 알게되었습니다. 소켓에 대한 쓰기 실패로 인해 브로큰 파이프가 발생합니다. [연결 서버 - 클라이언트가 TCP이기 때문에 이상하게 보입니다.]

하지만 문제는 브라우저가 페이지를 완전히 렌더링했는지 확인하거나 오류가 발생했는지 확인하는 방법을 찾을 수 없다는 것입니다. 물론 오류는 다른 원점을 가질 수 있지만 좋은 시작일 수 있습니다.

오 나는 (그것을 케이크 한 조각이다 JS와) JS를 사용하지 않으려는하지만 HTML5를 (그것을 도울 수 있다면 ...)를 사용할 수 있습니다

+0

당신 수의 맨 아래에 (1 픽셀의 X x 1 픽셀) 이미지를 웹 버그를 넣어 시도 페이지. 어쩌면 정적 서버가 아닌'view()'를 통해로드 할 수 있습니다. 이 시점에서 페이지가 100 % 렌더링된다는 보장은 없지만 대부분 완료되어야합니다. 그리고 체크에 JS가 언급되지 않았으므로 페이지 자체에 대해 JS를 사용하지 않는다고 가정합니다. –

+0

예, 저는 그것에 대해 생각하고있었습니다. (나는 이미 이런 일을했습니다.) 이것이 내 '클라이언트'가 원하는 것인지 확실하지 않습니다. 그는 미들웨어를 말했다 ... –

+0

당신의 클라이언트가 내가 "speccing"이라고 부르는 것을하고있는 것처럼 들린다. : 원하는 최종 결과를 지정하고 그것을 달성하는 방법. 이것이 숙제가 아니라고 가정 할 때, 고객과 함께 앉아 원하는 최종 결과 *를 명확히 한 다음 그것을 달성하는 방법에 대해 기술적 인 독립성을 주장하는 것이 좋습니다. –

답변

0

나는에 대한 답을 발견 할 수 있습니다 당신의 질문은 execute some code when the HTTPResponse has been sent입니다. 그런 다음 페이지가 클라이언트에 완전히 전송 된 후 원하는 것을 증가시킬 수 있습니다.

이 예제에서는 HttpResponse의 하위 클래스를 만들고 뷰에서 명시 적으로 파생 클래스의 인스턴스를 반환합니다. 당신이 많은 의견이있는 경우 무시하고 싶지 않은, 어쩌면 당신은 당신의 서브 클래스 정의에이 코드 조각을 시도 할 수

HttpResponse.__bases__ += (FullLoggingHttpResponse,) 
+0

유망 해 보입니다. 나중에 확인하겠습니다. 그것이 효과가 있다면 받아 들일 것입니다. 당신이 말한 문제에 대해서 저는 데코레이터가 그 일을 할 것이라고 생각합니다. –

관련 문제