我希望這個HTA代碼打印a
稍後將由b
替換。但是,它所做的是在一段時間內不打印任何東西,然後b
。 啓用MsgBox行後,它首先打印a
。InnerHTML何時立即執行?
看來statusinfo.InnerHTML = "a"
的執行被推遲。任何機構能告訴我爲什麼這是?我將如何獲得所需的行爲(立即刷新)?
<SCRIPT LANGUAGE=VBScript>
Sub doThis()
statusinfo.InnerHTML = "a"
'MsgBox "stop"
intensiveOperation
statusinfo.InnerHTML = "b"
End Sub
Sub intensiveOperation()
'takes long
End Sub
</SCRIPT>
<BODY>
<button onclick="doThis">Run</button>
<div id="statusinfo"> </div>
</BODY>
</HTML>
當您將兩個不同的值順序分配給任何變量時,只有最後一個值纔是操作後的實際值。該腳本首先運行,然後重新渲染頁面。如果你想在頁面上看到'a'和'b',你必須使用['setTimeout'](http://msdn.microsoft.com/en-us/library/ie/ms536753%28v=vs。 85%29.aspx)方法來延遲'intensiveOperation',因此,'a'在執行新腳本之前呈現。 – Teemu 2014-12-09 16:11:56
那麼我的代碼如何被修改以獲得所需的結果呢?我試着使用'retval = window.setTimeout(「intensiveOperation」,2000,「VBScript」)來包裝這個密集操作,但它唯一做的就是現在'b'立即顯示出來,而不是一段時間之後。與2000年相同,而不是10.'a'永遠不會顯示。 – mgr326639 2014-12-09 19:40:49