DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript教程:優化次數過多的循環
JavaScript教程:優化次數過多的循環
編輯:關於JavaScript     

網頁制作poluoluo文章簡介:優化次數過多的循環.

假設要生成一千萬個隨機數,常規的做法如下:
var numbers = [];
for (var i = 0; i < 10000000; i++) {
  numbers.push(Math.random());
}

然而,在IE下執行這段代碼時,卻彈出了一個窗口提示用戶是否停止這段腳本。出現這種情況,首先想到的是優化循環體。但明顯地,循環體很簡單,沒什麼優化的余地。即使把循環體清空,提示仍然存在。於是,我得出了一個結論:在IE下,一旦循環次數超過了某個特定值,就會彈出停止腳本的提示。

原因找到了,該如何解決呢?我首先想到的是把一千萬次循環分成若干個次數較少的循環。比如分成一百次,每次執行十萬次循環:
for (var i = 0, j; i < 100; i++) {
  for (j = 0; j < 100000; j++) {
    ……
  }
}

IE沒有我們想象中笨,它知道總的循環次數還是一千萬次。因此,得把這一百個十萬次循環分開執行。雖然Javascript是單線程的,但也可以通過setTimeout或setInterval模擬多線程。整段代碼優化如下:
var numbers = [];
function begin() {
  for (var i = 0; i < 100000; i++) {
    numbers.push(Math.random());
  }
  if (numbers.length < 10000000) { // 是否已完成
    setTimeout(begin, 0);
  } else {
    alert(”complete”);
  }
}
begin();

author: heero

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved