2009-10-20 1 views
3

일부 Javascript/ASP.Net 전문가가 나에게 약간의 힌트를 줄 수 있기를 바랍니다.JS/Update 패널 사이트에서이 메모리 사용량/DOM 사용량을 어떻게 디버그 할 수 있습니까?

나는 (불행히도) UpdatePanel을 사용하는 응용 프로그램을 작성했습니다. (그렇습니다. 너무 늦었지만 지금은 너무 바보 같은 생각이었습니다. 인트라넷 사이트에서 그것으로 문제가)

이 사이트는 표 형식의 일종의 웹 기반 출퇴근 시간 기록 용지 사이트입니다. 어쨌든 기본적으로 업데이트 패널에 모든 내용을 저장하고 1 분에 1 번 자동 저장합니다. 이것은 나를 위해 잘 작동하는 것,하지만 난 파이어 폭스를 사용합니다. 작업 표 항목이 많은 다른 사용자 및 IE7은 IE 메모리 사용량이 증가하고 브라우저 속도가 느려지는 문제가 있습니다.

나는 (웹 사이트에 메모리 누수에 대한 검사) 체를 실행하고 나쁜 꽤 분명했다 : alt text http://rodh.org/images/Programming/sievemain.png

내 사이트가로드 및 비트에 출마 왼쪽 딥에 그것을 갱신과 왼쪽 그게 전부 그것과 당신은 조금씩 뛰어 오르는 것을 볼 수 있습니다. 딥이 나기 전에 타임 라인의 영역이었습니다. 저장 버튼을 조금 치는 순간이었습니다. DOM 노드와 메모리가 모두 올라간다.

나는 (자바 스크립트 총계를 할 수 있도록 주로 clientID의 컨트롤을 얻으려고) ScriptManager.RegisterClientScriptBlock을 사용하고 page_load의 ScriptManager.RegisterStartupScript를 사용하여 포커스가 부분 포스트 백 이후에 동일하게 설정되도록합니다. 아마 그들은 공헌하고 있습니까?

나를 더 도울 수있는 도구가 있습니까? 시브 (Sieve)는 포스트 백 (postback)이 발생할 때 빈 div가 많이 나왔다고보고 했습니까? 조금 전에는 체를 사용 해 본 적이 없기 때문에 항상 이런 일이 일어날 수 있습니까? alt text http://rodh.org/images/Programming/sievnodes.png

코드 내가 할 수있는 분석, 또는 적어도 날 때마다 만든 새 DOM 노드를 볼 수 있습니다 뭔가 어떤 종류가 있나요 ...

내가 했나 문제를 생각하고있어 함께 할 수 있습니다 해커 뒤에있는 내 코드는 클라이언트 ID를 얻기 위해 배열에 저장하고 각 포스트 백에서 배열을 다시 생성합니다. 해커가하는 JS 파일과 추가 정보가 필요한 경우에 대비 한 코드를 업로드했습니다. http://rodh.org/images/Programming/javascript.txt http://rodh.org/images/Programming/codebehind.txt

그래서 난 내 질문은 추측 : - 사람이 바로 그이 원인이 될 것 아무것도 생각할 수 있습니까? - UpdatePanels에서 DOM 사용량이 증가하는 일반적인 원인은 무엇입니까? (Bqu : Jquery도 사용) - 디버깅에는 어떤 도구를 사용할 수 있습니까?

+0

RodH을 구현, 내가 궁금 해요 :

상황이 내 페이지를 빠르게하기 위해 한 왜 당신은 UpdatePanels를 망신 했습니까? 현재 내 개인 프로젝트에서 사용하고 있습니다. UpdatePanels보다 더 나은 옵션을 알고 있습니까? – jr3

+2

그들은 내가 믿는 전체 viewstate와 같이 아약스 호출로 많은 양의 데이터를 다시 보내면 일반적으로 눈살을 찌푸리게됩니다. http://encosia.com/2007/07/11/why-aspnet-ajax-updatepanels- 위험하다/ 그들은 쉽게 아약스를 만드는 데 아주 좋으며 올바른 상황에서 계속 사용 하겠지만 데이터의 전체 힙을 보낸 다음 내부의 모든 HTML을 다시 생성합니다. 했다. 대안은 asp.net 웹 서비스와 아약스 메소드 호출을 사용하여 필요한 것만 반환하는 것입니다. 나는 그것들이 편리하고 멋지다고 생각하지만, 아약스 코딩에 몸을 기울였다. – RodH257

+0

나는 매우 비슷한 문제를 겪고있다. 많은 업데이트 패널이있는 페이지와 UP 내용을 강제로 업데이트하는 타이머. 패널이 재구성 될 때마다 브라우저 메모리 사용이 조금씩 증가합니다. – CodexArcanum

답변

4

Microsoft에서 UpdatePanels를 사용하여 IE 문제 (KB 2000262)를 처음 알 수 있습니다. 그것의 DOM 파서 문제. 특정 페이지 콘텐츠 크기와 IE (모든 버전)가 적합 할 때까지 정상적으로 운영되는 사이트가있었습니다. FF와 다른 브라우저는 동일한 페이지를 쉽게 처리했습니다.

  • 사용 UpdateMode를이 = 조건부 가능한
  • KB에 2,000,262 수정

UpdatePanel Async Postsback slow in IE…Part 3

관련 문제