나는 느린 jscript ie7 엔진에 동일한 문제가있었습니다. 나는 인간을위한 상태 팝업 창을 추가했다. JS가 청크로 진행됨에 따라 상태 창을 업데이트합니다. 의사 코드 :
- favit js 라이브러리를 사용하여 상태 컨테이너를 만듭니다. 나는 YUI를 선호한다. 그들의 컨테이너 API를 참조하십시오.
- 일부 데이터가로드되지 않습니다. - 먼저 청크로 분할해야합니다.
- 상태 팝업을 업데이트하십시오. (완료된로드 % 증가, 막대 표시기 늘리기 등) JS 스레드가 여전히 실행 중이므로이 시점에서 화면이 변경되지 않을 것입니다.
- 다음,
var t = setTimeout("next_step(2)", 0);
// Where arg of 2 would mean do the second step
// This will yield to the browser, and the display will then be updated.
// If you want to maintain the value of "this" in the function, then do
// something like
var t = setTimeout("next_step.call(MyContext, 2)", 0);
// using call to set the function's context.
결론은 사용자가 뭔가 화면에 변경 볼 것입니다 호출합니다. 시간 제한 0을 사용하여 항복하는 단계는 비교적 오래 걸립니다. 그래서 내 코드는 브라우저를 테스트하고 IE가 아닌 다른 것이라면 청크 당 더 많은 작업을 수행합니다.
사용자에게 피드백을 변경하는 것이 매우 중요합니다. 그렇지 않으면 그들은 그것이 실제로보다 오래 걸린다 고 생각합니다.
HTH,
래리
나는 실제 코드를 볼 수 있지만 내가
jQuery.load() 제거했다 유사한 문제에 직면 한 것
:
결과 코드는 다음과 같이인가? IE는 일반적으로 어떤 것들에는 약간 느리고, 많은 콘텐츠가 있으면 훨씬 느립니다. – cgp
11KB IE7에 너무 많은가요? FF 오페라 크롬은 매우 빠르게로드됩니다. – taras