之前,我有一個簡單的JavaScript循環如你所見如下:JavaScript的循環凍結瀏覽器並不能看到改變的環路
function runCode() {
$("#sample-span").removeAttr("style");
for (var i = 0; i < 100000; i++) {
console.log(new Date());
}
$("#sample-span").toggleClass("colorized");
}
即切換類跨度在頁面如下:
<span id="sample-span" style="color: orange;">Sample Text</span>
<input type="button" value="click to run" onclick="runCode()" />
<style>
span {
color: blue;
}
.colorized {
color: red;
}
</style>
問題是,循環運行時頁面凍結,無法看到跨度顏色變化。
我該如何解決這個問題?
UPDATE
親愛的朋友們,console.log(new Date());
只是一個樣本,你認爲這裏運行的JavaScript重procces。
你爲什麼要記錄一個'new Date()'100000次?這是非常昂貴的。 –
親愛的@GhassenLouhaichi,這只是一個示例,假設在這裏運行繁重的JavaScript過程。 –
然後你必須將你的進程分成異步代碼。 – str