2010-02-01 4 views
1

많은 제어 기능과 방대한 양의 데이터로 asp.net 웹 응용 프로그램을 구축하고 있습니다. 내 응용 프로그램은 매우 느리고 그리드, 트리보기 등. NET 컨트롤에 데이터를로드하는 데 많은 시간이 걸립니다. 또한 일부 응용 프로그램에서 ajaxified 페이지 및 컨트롤이 있습니다. 각 포스트 백에서 페이지로드 시간을 줄이려고합니다.대형 ASP.NET 응용 프로그램의 성능 최적화

큰 asp.net 응용 프로그램을 개발하는 동안 따라야 할 표준/모범 사례는 무엇입니까?

감사합니다.

NLV

+2

ASP.NET MVC에서주의 깊게 다시 작성하고 전체 데이터베이스를'DataSet'에로드하고'GridView'에 바인드하지 마십시오. –

답변

2
  • 캐시 특정 데이터는 (따라서 정상화를 깨는지만 괜찮아) 응용 프로그램이나 데이터베이스 중 하나

  • 당신이 정말로 필요한 최소한의 데이터 집합을 검색합니다. 데이터베이스에서 10000 개의 레코드를 그리드로 가져와 50 만 표시하십시오. 정확히 50을 쿼리하십시오.

  • 서버 컨트롤 및 동적 마크 업 생성의 양을 최소화합니다. 수동 HTML 요소로 할 수있는 작업을 대체하십시오.

  • 보기 상태를 해제하면 페이지가 수십 메가 바이트까지 확장 될 수 있습니다. 캐싱 전략과 함께 각 요청에 대해 데이터베이스에서 데이터를 가져옵니다.

+0

두 번째 요점은 DataGrid에서 의미가 있습니다. 하지만 만약 내가 DataGrid 컨트롤 대신에 트리 뷰어 컨트롤을 가지고 있다면? 컨트롤에 수천 개의 노드가 있습니다. 어떤 아이디어? – NLV

+2

노드를 클릭하여 확장 할 때만 데이터를 검색해야한다고 생각합니다. 그 전에는 상위 계층 레벨의 데이터 만로드합니다. 하위 노드는 주문에 따라 데이터를로드합니다 (하위 노드가 클릭 될 때까지 최상위 계층 구조에 대해서만 다시로드됩니다). –

1

당신은 아약스를 사용하는 것보다 훨씬 나은 데이터베이스의 데이터를 얻기 위해 JQuery를 사용할 수 있습니다. 이것을 확인하십시오 http://www.codeproject.com/KB/webservices/JsonWebServiceJQuery.aspx

+0

그러면 서버 측 코드를 사용하여 데이터를 가져 오는 것보다 빠릅니다. – NLV

+0

S ... 동적로드를위한 업데이트 패널을 사용하면 내 경험에 따른로드 속도가 느려집니다. – Nila