나는 이것에 꽤 많은 시간을 보냈지만 아무데도 가지 않는 것처럼 보인다. 나는 정말로 속도를 내고 싶은 큰 페이지를 가지고있다. 시작하기에 명백한 장소는 HTTP 압축 인 것 같지만, 나는 그것이 나를 위해 일하도록 할 수없는 것 같습니다.누구나 ASP.NET에서 HTTP 압축을 사용할 수 있습니까?
상당한 검색을 거친 후 아래에서 여러 가지 변형 된 코드를 시도해 보았습니다. 일종의 작품이지만, 브라우저를 새로 고친 후에 결과가 떨어져 나간 것처럼 보입니다. 페이지가 캐싱을 사용할 때 그들은 쓰레기로 변하고있었습니다. 캐싱을 해제하면 페이지가 올바르게 보이지만 별도의 파일에 저장된 CSS 서식이 손실되어 포함 된 JS 파일에 잘못된 문자가 포함되어 있다는 오류가 발생합니다.
웹에서 찾은 대부분의 리소스는 매우 오래되었거나 IIS에 직접 액세스하는 데 중점을 둡니다. 내 페이지가 공유 호스팅 계정에서 실행 중이며 실행중인 IIS7에 직접 액세스 할 수 없습니다.
protected void Application_BeginRequest(object sender, EventArgs e)
{
// Implement HTTP compression
if (Request["HTTP_X_MICROSOFTAJAX"] == null) // Avoid compressing AJAX calls
{
// Retrieve accepted encodings
string encodings = Request.Headers.Get("Accept-Encoding");
if (encodings != null)
{
// Verify support for or gzip (deflate takes preference)
encodings = encodings.ToLower();
if (encodings.Contains("gzip") || encodings == "*")
{
Response.Filter = new GZipStream(Response.Filter,
CompressionMode.Compress);
Response.AppendHeader("Content-Encoding", "gzip");
Response.Cache.VaryByHeaders["Accept-encoding"] = true;
}
else if (encodings.Contains("deflate"))
{
Response.Filter = new DeflateStream(Response.Filter,
CompressionMode.Compress);
Response.AppendHeader("Content-Encoding", "deflate");
Response.Cache.VaryByHeaders["Accept-encoding"] = true;
}
}
}
}
아무에게도 더 좋은 성과가 있습니까?
이것도 Application_BeginRequest()에 있습니까? –
슬프게도 한 ASP.Net 프로젝트에서 만 작업했습니다.이 .ashx IHttpHandler 문제는 원할 경우 전체 응답 본문을 문자열로 처리 할 수있게 해줍니다. 나는 이것이 정규 .aspx 페이지에서 어떻게 이루어 졌는지 정말로 모른다. 다른 C#은 Win32의 것들입니다. ASP.Net에 일종의 출력 버퍼링 메커니즘이있는 경우이 코드는 플러시되기 전에 처리 할 것입니다. 미안해 더 구체적 일 수는 없어! –