2011-03-27 5 views
1

텍스트 영역에 큰 (몇 메가) 문서를로드하려고합니다.Firefox DOMContentLoaded 및로드 이벤트가 텍스트 영역의 큰 내용에서 매우 느립니다.

네트워크로드 시간을 무시하고 (실제로 304를로드 할 때 리로드 할 때 최소한입니다), Firebug에서는 DOMContentLoaded 및로드 이벤트가 거의 작동하는 데 약 20 초 가량 소요됩니다.

텍스트 영역을 div로 변경하면 실제로 내용 전체를 렌더링해야하지만 5 초가 소요됩니다!

로드 된 자바 스크립트 라이브러리가 없습니다. 언로드하는 것이 가장 먼저 시도한 작업입니다. CSS 파일을 여러 개로드했습니다.

무엇이 속도가 느려지는지, 어떤 방법으로 속도를 높이는 지에 대한 아이디어가 있습니까? 콘텐츠를 한 번에 청크로드? 일종의 못생긴하지만 최소한 사용자가 잠긴 브라우저가 아닌 잠재적으로 "이 스크립트는 너무 오래 걸린다"라는 경고를 보게합니다.

이것은 우분투의 Firefox 3.6.15입니다.

+0

다른 브라우저에서 테스트 했습니까? 그리고 어떤 종류의 문서? IO 속도가 느린 것일까 요? – BGerrissen

+0

Chrome에서 더 빠릅니다. 나는 기적을 기대하지 않는다. 결국 그것은 큰 문서이다. 그러나 이상한 것은 그것이 IO라고 생각하지 않는다는 것이다 : 304를 얻었을 때도 똑같이 느리다. 그리고 div를 사용하면 속도가 상당히 빨라진다. 텍스트 영역이 아닌 HTML 전체를 렌더링해야합니다!). –

+0

HTML 렌더러는 지난 몇 년 동안 모든 브라우저에서 많은 사랑을 받았습니다. 왜 텍스트 필드가 더 느린 지 생각할 수있는 유일한 방법은 '\\'를 이스케이프 처리하기 때문입니다. 아마 내가 생각한 최적화를 보지 못했을 것입니다. 양식 요소는 일반적으로 브라우저에서 재사용되는 OS 구성 요소이기도하며 HTML 렌더링 사랑의 영역을 벗어날 수도 있습니다. 어떤 경우에는, interresting는 찾아 낸다. – BGerrissen

답변

5

David, Firefox 3.6 및 이전 버전의 텍스트 영역은 매우 느립니다. 편집기 코드가 텍스트 영역 내에서 DOM을 다시 포맷하기 때문에 매우 느립니다. 한 줄에 하나의 텍스트 노드와 하나의 <br>을 생성합니다. 이것은 <div>의 단일 textnode 하위를 렌더링하는 것보다 훨씬 더 많은 작업입니다.

textnode (또는 그 복제본)를 직접 편집해야하는 Firefox 4를 사용해보십시오. 나는 그것이 당신의 페이지에서 훨씬 더 빠를 것이라고 생각합니다.

사용자의 속도를 향상시키는 한, 오래된 Firefox 버전의 유일한 옵션은 불행히도 텍스트 영역에 텍스트가 너무 많지 않기 때문입니다.

+0

저는 종종 텍스트가 많은 텍스트 영역이 Firefox에서 너무 느린지 궁금해했습니다. 그것은 그것을 설명합니다. 감사. –

관련 문제