문제

나는 Ajax.Net이 활성화된 ASP.Net 2.0 웹 사이트를 가지고 있습니다.사이트와 데이터베이스에 대한 호스팅은 데이터베이스의 스키마와 마찬가지로 제가 통제할 수 없습니다.하드웨어 테스트에서는 사이트가 잘 작동하도록 제어하지만 클라이언트 하드웨어에서는 페이지를 다시 로드하거나 변경할 때 눈에 띄는 지연이 있습니다.

제가 하고 싶은 것은 애플리케이션을 전달할 때 가능한 한 작고 빠르게 애플리케이션을 만드는 것입니다.한 가지 아이디어는 사이트의 모든 정적 리소스에 대해 만료 날짜를 설정하여 페이지 로드 시 리소스가 회수되지 않도록 하는 것입니다.리소스란 이미지, 링크된 스타일 시트 및 JavaScript 소스 파일을 의미합니다.이 작업을 수행하는 쉬운 방법이 있나요?

.Net 웹 사이트를 최적화하는 다른 방법은 무엇입니까?

업데이트:저는 사이트에서 YSlow를 실행했는데 가장 큰 타격을 받는 부분은 로드되는 JavaScript 및 스타일 시트의 수입니다(JS 파일 23개 및 스타일 시트 5개).하나(기본 스타일 시트)를 제외하고 모두 Ajax.net 및 Asp에 의해 삽입되었습니다.왜 그렇게 많은가요?

도움이 되었습니까?

해결책

  1. .net 3.5 SP1의 스크립트 결합
  2. 빠른 웹사이트를 위한 모범 사례
  3. HTTP 압축(gzip)
  4. JS/CSS 압축(http 압축과 다름, 자바스크립트 축소)
    1. 유이 압축기
    2. .NET YUI 압축기

제가 드릴 수 있는 최선의 조언은 다음을 확인하는 것입니다. YUI 콘텐츠.그들은 다음과 같은 것에 관해 이야기하는 훌륭한 기사를 가지고 있습니다. CSS 스프라이트 그리고 좀 먹어라 요청 수를 줄이는 데 도움이 되는 멋진 자바스크립트 라이브러리 브라우저가 만들고 있습니다.

다른 팁

웹사이트를 테스트하기 위해 Firefox를 사용하고 있다면 Yahoo!에서 제공하는 멋진 Firefox 확장 기능을 사용해 볼 수 있습니다.~라고 불리는 YSlow.

이는 귀하의 웹 페이지를 분석하고 고성능 웹 사이트에 대한 각 모범 사례에 대해 A-F 등급(A는 최고, F는 최악)을 제공합니다.이는 속도 향상을 위해 최적화할 수 있는 웹사이트 요소를 추적하는 데 도움이 됩니다.

기본적으로 viewstate를 끄면 가장 간단한 페이지에서도 밤낮의 차이가 발생합니다.

나는 썼다 블로그 게시물 몇 달 전에 ASP.NET 페이지 성능 향상에 대해 설명했습니다.빠르고 쉬운 방법은 다음과 같습니다.

  • 보기 상태 끄기
  • 이벤트 확인 끄기
  • 응답 크기(서버가 클라이언트에 다시 보내야 하는 바이트 수)를 줄이기 위해 HTTP gzip/deflate 압축을 구현합니다.
  • 각 요청에 대한 데이터베이스 호출을 최적화/최소화하십시오.

최적화할 대상에 대해 현명한 결정을 내릴 수 있으려면 프로덕션 환경에서 실행하는 동안 앱에서 실제 PerfMon 데이터/원격 측정을 얻을 수 있어야 한다고 생각합니다.

일회용 팁으로 귀하의 앱이 풀어 주다 '에서 debug="false"를 빌드하고 설정합니다.편집web.config의 ' 섹션입니다.

문제가 다운로드 크기라고 가정하여 시작하는 것 같습니다. 반드시 그런 것은 아닐 수도 있습니다.ASP.NET 사이트에서 몇 가지 실험을 수행하여 코드에 과도한 지연을 일으키는 영역이 있는지 확인해야 합니다.다운로드 크기가 문제가 아닌 것으로 밝혀지면 결과를 캐시하는 방법(ASP.NET 기능인 출력 캐싱 살펴보기)을 찾거나 코드를 최적화해야 합니다.

어쨌든 성능 문제를 살펴보는 첫 번째 단계는 언제나 먼저 가정을 확인한 다음 행동 방침을 결정하세요.

캐싱 전략을 살펴보기 시작할 수 있습니다.CSS(압축된 파일 포함) 및 이미지(최적화된 파일 포함)와 같은 정적 파일은 일정 기간 동안 브라우저에서 한 번만 다운로드하면 됩니다.

AJAX에 대한 Scirpt 결합은 이미 언급되었지만 결합 대상을 파악하는 데 도움이 되도록 codeplex에서 릴리스된 ScriptReferenceProfiler MS에 대한 참조를 보지 못했습니다.마이크 오몬드 이것에 대한 좋은 출발점이 있습니다.

데이터베이스에 INSERT를 많이 수행하는 경우 또 다른 팁은 서버의 디스크 캐싱이 켜져 있는지 다시 확인하는 것입니다.예를 들어, 실행 중에 120만 개의 삽입을 수행하는 데이터 가져오기 도구가 있었습니다.4시간이 걸렸고 캐싱 없이 변경되었습니다.켜놓고 16분 걸렸습니다.

ASP.NET과 Ajax(모든 Ajax 라이브러리)를 함께 사용할 때 일반적인 사항은 Page_Load 및 Page_Init(및 그에 상응하는 메서드) 항목을 코끼리처럼 피하는 것입니다. 왜냐하면 이들은 모든 Ajax 요청에서 실행되기 때문입니다.

그렇다면 저는 진지하게 ASP.NET AJAX를 버리고 다음을 사용할 것입니다. 아무것 또 다른...

Anthem.NET, AjaxPRO.NET, jQuery 또는 ASP.NET AJAX 이외의 모든 것...

물론 나는 사용할 것이다 라-아약스 그건 내 프로젝트니까 나 자신이야.그런데 또 편견이 생겼네요...

클라이언트가 지원하는 압축을 기반으로 압축을 켤 수 있습니다.이 문서를 참조하세요: 링크 텍스트

변경되지 않는 한 정적 리소스를 다시 보내서는 안 됩니다.IIS는 브라우저에 캐시된 버전을 사용하도록 지시하는 응답 코드를 보냅니다.

페이지의 다양한 부분에 상당히 세부적으로 적용할 수 있는 ASP.NET 출력 캐싱을 살펴볼 수도 있습니다.

http://msdn.microsoft.com/en-us/library/xsbfdd8c(VS.71).aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top