2012-06-01 2 views
2

자바 루프 중에 다시 그리기를 원합니다. 예 :자바 루프 중에 강제로 다시 칠하기

var s = document.getElementById("foo"); 
for (var i = 0; i < 10000; i++) 
    s.innerText = i + " times"; 

결국 업데이트되지만 각 중간 단계를 확인하고 싶습니다. 이 문제에 대한 일반적인 반응은 용납 할 세 가지 이유가있다, 그러나, setTimeout을 사용하는 것입니다 : 페이지에

  • 있습니다 다른 버튼/링크 등이 있으며 이들 중 어느 것도 동안을 클릭 할 수없는 것이 중요하다 루프가 작동합니다.
  • 루프가 끝날 때, 팝업을 표시하고 싶습니다. 시간 초과가 발생하면 사용자가 더 이상 시작하지 않기 때문에 표준 팝업 차단기가 숨길 것입니다.
  • 루프가 실행되는 동안 사용자가 클릭하는 경우 루프가 완료 될 때까지 버퍼링되도록하고 루프의 절반은 실행하지 않습니다.

강제로 브라우저를 다시 칠하는 방법이 있습니까?

+0

> 팝업이 표시되면 시간 초과가 발생하면 표준 팝업 차단기가 더 이상 사용자가 시작하지 않으므로이를 숨길 수 있습니다. 나는 이것에 대해 잘 모르겠습니다. window.open 팝업에 settimeout을 사용하지는 않지만 브라우저가 팝업을 거의 멈출 때마다 – Sebas

+0

사용자 작업 (클릭)에 대한 직접 응답으로 팝업이 열리면 대개 허용됩니다. 다른 것에 대한 응답으로 시작하면 종종 허용되지 않습니다. –

+3

* "브라우저에서 다시 칠하도록하는 방법이 있습니까?"* 나는 그렇게 생각하지 않습니다. 'setTimeout'에 대한 첫 번째와 세 번째 문제는 해결 될 것으로 보입니다. 두 번째가 확실하지 않습니다. –

답변

1

브라우저를 렌더링 할 때 속도 향상을위한 술어로 중요하지 않은 부분이 있기 때문에 이것이 유일한 해결책이라고 생각됩니다.

아마도 불타고 싶지 않은 클릭 이벤트에서 buffer-me 플래그를 관리 할 수 ​​있습니까? 또는 더 나은 버퍼 - 날 플래그라고 말했다 ...

나는 그것이 도움이 되었기를 바랍니다.

관련 문제