2010-03-25 3 views
0

각 100 행 20 테이블 렌더링에 JavaScript를 사용합니다. 각 테이블의 데이터는 컨트롤러에서 JSON으로 제공됩니다. 각 테이블은 "합계"가 있고 다른 JavaScript 로직 코드가있는 섹션으로 나뉩니다. 일부 합계는 테이블 자체 외부에 있습니다. (특히 IE6에서) 초 :(몇에 대한 결과 자바 스크립트 블록 브라우저로브라우저가 차단되어 작업자가 구출됩니까?

I가 저를 허용하지 않습니다 http://code.google.com/p/jsworker/이 그러나 구글 기어 (나는 일반적으로 노동자를 추측) 근로자 사용 consideting했다 작업자 코드에서 DOM을 변경하고 jsworker 작업자 코드 내에서 jQuery를 사용할 수없는 것처럼 보입니다. (어쩌면 내가 틀렸을 수도 있습니다.) (0120) , 내 생각을 어떻게 공유 할 수 있습니까?

답변

1

작업자는 메시지를 전달하여 페이지 실행과 통신 할 수 있습니다. 엄청난 어려움을 낳기 때문에 페이지와 직접 상호 작용할 수 없습니다.

처리 시간을 단축하려면 DOM 조작 코드를 최적화해야합니다. 좋은 사례에 대해 Google에 상담 할 가치가 있습니다.

실행 속도를 향상시키는 한 가지 방법은 DOM 외부에서 테이블을 작성하고 완료된 경우에만 문서에 삽입하는 것입니다. 이렇게하면 많은 삽입 시간이 소요되는 모든 삽입 작업에서 브라우저가 다시 그리지 않아도됩니다.

0

일반적으로 백그라운드 워커 (backgroundworker)에서 UI를 변경하지 않아도됩니다. 작업자가 완료 한 주 스레드에 항상 신호를 보내고 결과를 처리 할 수있는 주 스레드로 결과를 리턴해야합니다.

HTML5 태그에 대한 비동기 속성을 포함하고 UI에 서면 당신이 쓰고 싶다 단지 물건 빈 페이지가됩니다에서.

다른 접근 방법이 필요합니다. 저는 JS 전문가가 아니므로 구현을 도와 드릴 수는 없지만 적어도 이제는 개념을 갖고 계십시오.

0

브라우저 성능 세계를 파고 들려면 High Performance Web Sites blog에는 많은 정보가 있습니다. 자바 스크립트가 페이지 렌더링을 차단할 때를 포함하여 이러한 문제를 피하는 것이 좋습니다.