我有一个函数constGrid(arg1)
被调用3次以在表单加载时构建extjs网格。我的页面还有其他字段。我真正想要的是如何调用constGrid方法,以便我的页面不会等待它们加载,并且在方法完成之前不会挂起。
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 :(得分:0)
我不确定这在其他浏览器中是如何工作的。你需要传递给setTimeout的是一个函数。你实际传递的是一个函数的结果。
试试这个(虽然未经测试):
onLoad(function() {
for (var i=0; i <argArr.length;i++) {
setTimeout(constGrid.bind(window, argArr[i]));
}
....
})
这假设consGrid
处于全局范围,似乎是。
答案 1 :(得分:0)
实际上你已经调用'constGrid'它应该作为参数传递给setTimeout。改为定义一个函数:
setTimeout(function() {constGrid(argArr[i]);}, 0);
(0 ms i.o立即执行,但异步)