我有一個很長的JavaScript函數,它執行許多任務,我想通過在發送消息時更新SPAN元素的內容來向用戶報告進度。我試圖在函數代碼中添加document.getElementById('spnProgress')。innerText = ...語句。如何報告JavaScript函數的進度?
但是,雖然函數正在執行,UI將不會更新,因此您只能看到寫入SPAN的最後一條消息,這不是很有用。
我目前的解決方案是將任務分解成若干功能,每個功能結束時我設置SPAN消息,然後用一個非常短的延遲調用window.setTimeout調用「觸發」下一個函數10毫秒)。這會產生控制權並允許瀏覽器在開始下一步之前用更新的消息重新繪製SPAN。
但是,我覺得這非常混亂,難以遵循代碼,我認爲必須有更好的方法。有沒有人有什麼建議?有沒有辦法強制SPAN重繪,而不必離開函數的上下文?
感謝
這是正確的選擇。 – Kangkan 2010-04-07 12:32:09