2011-03-15 43 views
0

在我的JavaScript我加載一個基於已經產生的HTML數組。在Firefox中,此功能完美無瑕,但在Internet Explorer 7中,該頁面會掛起大約幾分鐘的時間。Internet Explorer死於嘗試在初始化時加載JavaScript數組?

我看不出爲什麼需要這麼長時間才能完成Firefox沒有任何問題?

ImageHTMLContainer只是用來存儲內部html的字典。

var ImageHTMLContainer = []; 

addLoadEvent(init); 

function init() { 

    var NumOfRows = parseInt(DID("NumRows").innerHTML); 
    var NumOfCols = parseInt(DID("NumCols").innerHTML); 
    var i; 
    var j; 

    for (i = 0; i < NumOfRows; i++) { 
     ImageHTMLContainer["Row" + i.toString()] = DID("Row" + i).innerHTML; 
     for (j = 0; j < NumOfCols; j++) { 
      ImageHTMLContainer["Row" + i.toString() + "Col" + j.toString()] = DID("Row" + i + "Col" + j).innerHTML; 
     } 
    } 
} 
+1

你也應該發佈DID函數的代碼。 – jessegavin 2011-03-15 15:15:24

+0

有多少行和列? – Cameron 2011-03-15 15:16:11

+0

對不起DID只是返回document.getelementbyid – Tom 2011-03-15 15:17:07

回答

1

ie7的js引擎比firefox中的引擎老得多,速度慢。

您在循環中有一個循環,它讀取innerHTML - 不這樣做,它可能是您可以做的最有效的方式。

您是否考慮過通過xml或json加載數據,而不是通過呈現的DOM來初始化JavaScript數據?

+0

你能詳細解釋一下嗎?一個表是從SQL生成的,我正在將內部html加載到JS中以啓用排序。我將數據加載到JS中,因爲有列包含圖像等,所以更容易只是在重新排序時交換行的內部html。 – Tom 2011-03-15 15:45:56

相關問題