欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js 優(yōu)化次數(shù)過多的循環(huán) 考慮到性能問題

 更新時間:2011年03月05日 23:55:15   作者:  
IE沒有我們想象中笨,它知道總的循環(huán)次數(shù)還是一千萬次。因此,得把這一百個十萬次循環(huán)分開執(zhí)行。雖然Javascript是單線程的,但也可以通過setTimeout或setInterval模擬多線程。
假設要生成一千萬個隨機數(shù),常規(guī)的做法如下:
復制代碼 代碼如下:

var numbers = [];
for (var i = 0; i < 10000000; i++) {
  numbers.push(Math.random());
}

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

原因找到了,該如何解決呢?我首先想到的是把一千萬次循環(huán)分成若干個次數(shù)較少的循環(huán)。比如分成一百次,每次執(zhí)行十萬次循環(huán):
復制代碼 代碼如下:

for (var i = 0, j; i < 100; i++) {
  for (j = 0; j < 100000; j++) {
    ......
  }
}

IE沒有我們想象中笨,它知道總的循環(huán)次數(shù)還是一千萬次。因此,得把這一百個十萬次循環(huán)分開執(zhí)行。雖然Javascript是單線程的,但也可以通過setTimeout或setInterval模擬多線程。整段代碼優(yōu)化如下:
復制代碼 代碼如下:

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();

相關文章

  • JavaScript 中 JSON.parse 函數(shù) 和 JSON.stringify 函數(shù)

    JavaScript 中 JSON.parse 函數(shù) 和 JSON.stringify 函數(shù)

    這篇文章主要介紹了JavaScript -- JSON.parse 函數(shù) 和 JSON.stringify 函數(shù),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • Javascript json object 與string 相互轉換的簡單實現(xiàn)

    Javascript json object 與string 相互轉換的簡單實現(xiàn)

    下面小編就為大家?guī)硪黄狫avascript json object 與string 相互轉換的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • JS實現(xiàn)自適應高度表單文本框的方法

    JS實現(xiàn)自適應高度表單文本框的方法

    這篇文章主要介紹了JS實現(xiàn)自適應高度表單文本框的方法,實例分析了針對IE內(nèi)核與非IE內(nèi)核下的javascript控制文本框樣式的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • js實現(xiàn)有趣的倒計時效果

    js實現(xiàn)有趣的倒計時效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)有趣的倒計時效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • javascript實現(xiàn)無法關閉的彈框

    javascript實現(xiàn)無法關閉的彈框

    本文分享了javascript實現(xiàn)無法關閉的彈框的實例代碼,感興趣的朋友可以看下
    2016-11-11
  • js下利用控制器載入對應腳本

    js下利用控制器載入對應腳本

    因項目開發(fā)需要,須將每一個方法都獨立成單獨的js文件以便載入、維護,所以,必須需要有一個控制器用于載入這些方法。
    2010-07-07
  • JS模擬實現(xiàn)哈希表及應用詳解

    JS模擬實現(xiàn)哈希表及應用詳解

    這篇文章主要介紹了JS模擬實現(xiàn)哈希表及應用,結合實例形式分析了javascript模擬實現(xiàn)哈希表的步驟、相關操作技巧與使用方法,需要的朋友可以參考下
    2018-05-05
  • JavaScript數(shù)組方法總結分析

    JavaScript數(shù)組方法總結分析

    下面小編就為大家?guī)硪黄狫avaScript數(shù)組方法總結分析。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考
    2016-05-05
  • 微信接入之獲取用戶頭像的方法步驟

    微信接入之獲取用戶頭像的方法步驟

    這篇文章主要介紹了微信接入之獲取用戶頭像的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • js 定位到某個錨點的方法

    js 定位到某個錨點的方法

    下面小編就為大家?guī)硪黄猨s 定位到某個錨點的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11

最新評論