我可能错过了一些非常明显的东西......
我在页面加载期间显示带有进度条的对话框。对话框和进度条都是jQueryUI小部件。有几个加载阶段 - 页面加载jQuery $ .get()请求加载资源,然后在$(document).ajaxStop()事件上,用这些资源做事情。我正在整个过程中更新进度条和一些状态文本。
问题是,只要ajaxStop事件触发,更新就会停止。代码在资源加载过程中运行良好,但随后冻结,我在处理过程中看不到任何更新。如果我在Chrome中的post-ajaxStop更新中设置断点并逐步执行代码,则屏幕会正确更新,因此我知道代码可以正常工作。
有人可以解释为什么在我的AJAX加载阶段一切都很好地更新,但是然后在ajaxStop事件上停止了吗?之后是否有一种简单的方法可以继续更新?
谢谢!
答案 0 :(得分:0)
稍后搜索了几个小时,following blog指出了我正确的方向:
条目中描述了一个jQuery扩展,它允许您定义两个函数,一个用于计算,另一个用于更新UI。它使用setTimeout函数交替调度它们。
我必须以类似于继续传递样式的方式重写我的代码,以便每个函数使用setTimeout安排其继续运行。这会将控制权返回给浏览器足够长的时间,以便更新屏幕。
虽然能够绕过浏览器/ Javascript限制,但感觉有点像黑客。有人知道更好的方法吗?