2009-08-11 6 views
1

저는 꽤 긴 자바 스크립트가 있습니다. 문제는 그것의 중간에 div의 innerHtml을 변경하여 "거의 완료하시기 바랍니다."라고 말하고 싶습니다. 나는 jquery 함수를 호출하는 것이 문제라고 생각한다. 함수의 성공 콜백에서 나는 페이지를 업데이트하려고하는 다른 함수를 호출한다.사용중인 자바 스크립트 코드에서 페이지가 업데이트되지 않습니다.

파이어 버그를 사용하여 중단 점을 설정하고 코드를 단계별로 실행하면 페이지가 업데이트되고 div의 메시지가 표시됩니다. 하지만 코드를 실행 시키면 메시지가 표시되지 않습니다. div를 업데이트하기 전후에 경고 상자를 설정하면 역시 볼 수 있습니다.

누구나 전에 이런 걸 본 적이 있습니까?

감사합니다.

+1

@Erica를 통해 얻을 생각 -에 오신 것을 환영합니다 SO하지만, 당신이 무엇을 시도했다 보는이 응답하지 않고 예정에 추측 게임이 되십시오. – karim79

+0

나 후 반복 : 나는 자바 스크립트로 브라우저를 호스하지 않을 것이다 :-) –

답변

5

일반적으로 JS 코드가 실행될 때 보는 것과 같이 다른 모든 렌더링이 중단됩니다. 당신은 너무 같은 페이지에서 발생하는 렌더링 수 있도록에서는 setTimeout 기능을 사용하려고 할 수 있습니다 doMoreStuff이 처리의 마지막 부분을 할 것입니다 또 다른 기능입니다

doStuff(); 
$('#myDiv').html('Almost done, please wait'); 
setTimeout(doMoreStuff, 50); 

참고.

코드를 이렇게 분할하면 브라우저가 일부 렌더링주기에 들어갈 수 있습니다. 지연 (50 위)을 실험하여 원하는 숫자를 찾을 수도 있지만 div의 내용을 설정하려면 50을 입력해야합니다 (0을 입력해도됩니다).

또한, 나는 innerHTML을 설정을위한 jQuery를 구문을 기억할 수 있지만 요점은 :

+0

나는 별명을 좋아한다! – karim79

+0

또한 투표를 통해 innerHTML을 jQuery와 동일한 것으로 변경했습니다. – karim79

+1

예, 지연 0이 자주 작동합니다. JS가 제어권을 포기할 때까지 애니메이션 GIF조차도 애니메이션으로 재생되지 않습니다. – Nosredna

관련 문제