2
我想在Javascript循環中強制重繪。例如:在Javascript循環中強制重繪
var s = document.getElementById("foo");
for (var i = 0; i < 10000; i++)
s.innerText = i + " times";
更新結束,但我想觀察每個中間步驟。解決這個問題的普遍反應是使用setTimeout
,但是,有三個方面的原因是不可接受的:在頁面上
- 還有其他的按鈕/鏈接等,而重要的是,這些都不可以點擊而循環運行。
- 在循環結束時,我想顯示一個彈出窗口,如果超時觸發,則標準彈出窗口阻止程序將隱藏它,因爲它不再由用戶啓動。
- 如果用戶在循環運行時單擊,我希望該點擊被緩存直到循環完成,而不是通過循環中途開啓。
有沒有辦法強制瀏覽器重畫?
>在循環結束時,我想顯示一個彈出窗口,如果超時被觸發,標準彈出窗口阻止程序將隱藏它,因爲它不再由用戶啓動。 我不太確定這一點。我從來沒有使用settimeout window.open彈出窗口,但幾乎每次瀏覽器停止彈出 – Sebas
如果彈出窗口直接響應用戶操作(即單擊)打開,那麼它通常是允許的。如果您是以其他方式迴應而啓動它,那麼通常會被禁止。 –
*「有沒有辦法強制瀏覽器重畫?」*我不這麼認爲。 'setTimeout'的第一個和第三個問題似乎是可以解決的。不確定第二個。 – 2012-06-01 20:26:59