2011-09-26 4 views
3

캐싱을 위해 브라우저로 보내기 전에 HTML을 캡처하고 싶습니다. 이것을 할 수있는 방법이 있습니까?브라우저로 보내기 전에 HTML을 가져 오는 방법

+2

MVC 3에서 작업의 특성으로 [OutputCache (Durantion = 100000)]을 사용하여 출력 캐시를 작성했다고 생각 했습니까? – gordatron

+0

저는 그렇게 믿지 않습니다 (확실하지 않습니다). 왜냐하면 당신이'Response.OutputStream'을 사용할 때 헤더가 보내지기 때문에, 당신은 스트림에 쓰고있는 내용입니다. OutputStream에 실제로 쓰기 전에 보내려는 내용을 캐시에 저장하겠습니까? – Cipi

+0

[documentation] (http://msdn.microsoft.com/en-us/library/system.web.httpresponse.aspx)는 'Buffer' 및/또는'BufferOutput' 속성을 사용하여 요청이 처리되는 동안 그 내용을 버퍼링하는'HttpResponse '. 요청 처리가 끝나면 버퍼링 된 데이터를 검사 할 수 있습니다. – aroth

답변

2

나는 이것을 시도한 적이 없지만 HTTP 모듈의 EndRequest 이벤트에 연결하여 간단히 Response 속성을 읽을 수 있습니까?

편집 :이 시점에서 응답을 읽을 수 없기 때문에 최소한 간단한 수준에서는 막대한 실패가 발생했습니다. 요청의 시작 부분에서 Response의 출력을 리디렉션하고 마지막에 파이프를 통과시키는 방법이 있으면 실행 가능할 수 있습니다.

편집 # 2 : 나는 가깝지만 생각보다 복잡합니다. 너는 here을 멋지게 보여주는 필터를 구현해야한다.

관련 문제