我知道最有可能這樣的問題已被請求過幾次,但我需要顯示一個彈出窗口或消息或whatelse,當一個JavaScript函數被觸發並隱藏它在最後。當javascript運行時顯示消息
看到這個簡單的JS fiddle
這就是HTML代碼:
<div id='message'>Default message</div>
<input type='button' onclick='Run();' value='start'>
股利「消息」必須包含一個簡單的文本,如「運行」或「請稍候」或...
這就是JS功能了(延遲)3秒:
function Run() {
var delay = 3000; //-- 3 seconds
$('#message').text('Please wait ' + delay + ' seconds...');
var start = new Date().getTime();
while (true) {
current = new Date().getTime();
if ((start + delay) < current) {
break;
}
}
$('#message').text('Done');
}
預期的行爲是'#message'div在進入循環之前包含「Please wait 3 seconds ...」,並且僅在結尾處包含「完成」字符串。
但事實並非如此。 任何人都可以解釋我(最有可能「再次」)爲什麼或建議一個鏈接在哪裏可以找到答案?
好的,這有點更清晰。所以原因是因爲[雖然真的]陳述太重而無法正確處理。 但是,如果[while(true)]語句被一段javascript代替(例如)需要更改頁面上〜1000個不同div的邊框顏色並且需要幾秒鐘,會發生什麼?在這種情況下,我怎麼能向用戶展示消息,如處理期間的「請稍等」,甚至不知道需要多長時間? –
與「等到功能完成運行」的優先級不同。如果你想更新很多元素,那麼分批進行。 – Quentin