我有一个很长的JavaScript脚本.问题是,在它的中间我想改变div的innerHtml说"几乎完成请等待".我认为问题是我调用了一个jquery函数.在函数的成功回调中我调用另一个函数,这是我尝试更新页面的地方.
如果我使用firebug设置断点并单步执行代码,页面会更新,我会看到div的消息.但是,如果我只是让代码运行,我看不到消息.如果我在更新div之前和之后设置了一个警告框,我也会看到它.
以前有人见过这样的东西吗?
谢谢!
通常在运行JS代码时,所有其他渲染都会停止,就像您所看到的那样.您可以尝试使用setTimeout函数来允许在页面上进行渲染,如下所示:
doStuff(); $('#myDiv').html('Almost done, please wait'); setTimeout(doMoreStuff, 50);
请注意,doMoreStuff是另一个将执行处理的最后部分的函数.
如果您的代码可以通过这种方式拆分,它将允许浏览器进入一些渲染周期.您可能想要尝试延迟(上面的50)来找到适合您的数字,但是如果你想要做的就是设置div的内容,那么50应该没问题(可能甚至0都可以).
另外,我不记得用于设置innerHTML的jQuery语法,但我认为这个点得到了:)