2014-02-25 193 views
0

我有一個函數constGrid(arg1)被調用3次,以在表單加載時構建extjs網格。我的頁面也有其他字段。真正想要的是如何調用constGrid方法,以便我的頁面不會等待它們加載,並且在方法完成之前不會掛起。異步加載javascript函數

onLoad(function() { for (var i=0; i<arg.length;i++) { constGrid(arg[i]); } .... })

但是當我使用的setTimeout喜歡的網頁下面特別是IE掛起,直到完成。

onLoad(function() { for (var i=0; i <argArr.length;i++) { (function(i) { setTimeout(constGrid(argArr[i])); })(i)); } .... })

你在做這個異步的幫助將是很大的幫助。謝謝。

+0

您需要添加的超時值(毫秒),以及,它是必需的參數:'window.setTimeout(「功能」,毫秒);' – LGSon

回答

0

我不確定這是如何工作在其他瀏覽器說實話。你需要傳遞給setTimeout是一個函數。你實際傳遞的是一個函數的結果。

試試這個(雖然未經測試):

onLoad(function() { for (var i=0; i <argArr.length;i++) { setTimeout(constGrid.bind(window, argArr[i])); } .... })

這是假設consGrid是在全球範圍內,它似乎是。

0

實際上,你已經調用了'constGrid',它應該作爲參數傳遞給setTimeout。定義一個函數:

setTimeout(function() {constGrid(argArr[i]);}, 0); 

(0毫秒io來馬上做,但異步)