【发布时间】:2010-08-01 15:45:54
【问题描述】:
我正在尝试延迟加载 javascript,但无法使其可靠地工作。我的页面加载速度很快,我想保持这种状态,所以我不打算使用超时来延迟加载。除了document.readyState,如何确保 DOM 真正准备好进行修改?
方法一:
轮询就绪状态
createElement 脚本
src = 网址
将元素附加到头部
结果:
IE8:总是中止
FF3:第一次加载,每次都中止 其他
Chrome:第一次加载,每次都中止 其他
方法二:(lazyload包含在head标签中)
- 使用延迟加载加载
结果:
IE8:总是中止
FF3:有效
Chrome:第一次加载,每次都中止 其他
【问题讨论】:
-
你可能需要展示一些代码。
-
你可能想看看here
-
我认为 Peter Michaux'The window.onload Problem (Still) 可能是一本好书。
-
我整天都在研究它,我的结论是,没有一个优雅的解决方案可以让用户在页面内容没有计时器黑客之前加载指定的脚本。无论如何都没有记录在案。我会留下这个问题,希望有人能提出一个创造性的答案。 @Pekka 这不是代码问题。这是浏览器的一个缺点。他们应该在内部阻止 appendChild,直到他们对文档的内部表示完成。
标签: javascript appendchild lazy-loading