3

我正在尝试延迟加载 javascript,但我无法让它可靠地工作。我的页面加载速度很快,我想保持这种状态,所以我不打算使用超时来延迟加载。此外document.readyState,如何确保 DOM 真正准备好进行修改?

方法一:

  1. 轮询就绪状态

  2. 创建元素脚本

  3. src = 网址

  4. 将元素附加到头部

结果:

IE8:总是中止

FF3:第一次加载,每隔一段时间就中止

Chrome:第一次加载,每隔一段时间就中止

方法二:(head标签中包含lazyload )

  1. 用延迟加载加载

结果:

IE8:总是中止

FF3:有效

Chrome:第一次加载,每隔一段时间就中止

4

2 回答 2

2

如果你把你的标签放在<script>标签上面</body>,你可以用DOM做大部分事情而不会引发任何错误,即<script>标签上面的任何东西通常都需要修改。

但是,如果您正在寻找一个更强大的解决方案,您可能会通过检查主要库如何检测 DOM 是否准备好来取得一些进展,这里是初学者(jQuery):http: //github.com/jquery/ jquery/blob/master/src/core.js#L393

于 2010-08-01T15:54:11.160 回答
1

如果没有一个体面的框架来帮助您跨越差异,Javascript 几乎是不可用的跨浏览器。今天可能最流行的是jquery,根据本教程,您可以在哪里使用$(document).ready(). 在dojo,也很流行,你可以使用addOnLoad。依此类推……如果您不使用任何框架,那么您的生活对自己来说太难了:帮自己一个忙,选择一个您喜欢的 JS 框架!-)

于 2010-08-01T15:54:04.490 回答