簡體   English   中英

在Javascript循環期間強制重繪

[英]Force repaint during Javascript loop

我想在Javascript循環中強制重繪。 例如:

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

最后更新,但是我想觀察每個中間步驟。 解決此問題的常見方法是使用setTimeout ,但是有三個不可接受的原因:

  • 頁面上還有其他按鈕/鏈接等,重要的是在循環運行時,不能單擊其中的任何一個。
  • 在循環的最后,我想顯示一個彈出窗口,如果超時觸發,則標准的彈出窗口阻止程序將其隱藏,因為它不再由用戶啟動。
  • 如果用戶在循環運行時單擊,我希望該單擊緩沖在循環結束之前,而不是在循環進行一半時觸發。

有沒有辦法強制瀏覽器重新粉刷?

恐怕這是您唯一的解決方案,因為不可重畫的中間內容作為提高瀏覽器渲染速度的謂詞很重要。

也許您可以在您不想觸發的那些單擊事件中管理“緩沖我”標志? 或者更好的說一個不要緩沖我的標志...

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM