通过AJAX延迟window.onload?</iframes>执行<iframes>和图片加载

时间:2011-07-31 01:48:01

标签: javascript dom onload

我正在尝试让window.onload事件更快地启动,以便Google认为我的页面加载速度更快(这是一项令人沮丧的任务,因为从window.onload到用多长时间从用户的角度来看基本上是无关紧要的,但我离题了)

但是,我不知道onload事件有什么延迟!具体做法是:

  1. 如果我在<iframe>的页面上加载了一个Facebook收藏夹,它的加载是否延迟了onload事件?如果likebox iframe必须加载一堆个人资料照片呢? onload会等到它们完全加载吗?
  2. 假设在文档就绪时我对HTML blob执行异步AJAX请求并将其注入页面。如果此HTML blob包含一堆<img>标记,那么onload事件是否等待加载所有这些标记?
  3. 一般来说,浏览器如何知道何时触发onload事件?什么样的东西阻止了载荷,什么样的东西没有?

2 个答案:

答案 0 :(得分:2)

a)除了减少页面“重量”之外,您无法控制window.onload。由浏览器决定何时宣布该事件。

b)谷歌没有关于window.onload事件的线索,因为它没有解析JavaScript。

1)您可以通过使用类似按钮的XFBML版本和Facebook JavaScript SDK的异步加载(http://developers.facebook.com/docs/reference/javascript/FB.init/)来完全消除Facebook有效负载。请注意,只有在启用JavaScript时它才会起作用。

2)所有会大幅增加网页权重的内容都应该异步加载,最好是在window.onload事件被触发后。

答案 1 :(得分:2)

如果您查看瀑布,在firebug或chrome检查器中,iframe和ajax调用确实会影响onload事件。我遇到了与facebook相似的问题,大大减慢了网站速度。是的,在网站站长工具中查看网页加载时间时,会显示延迟。

我的解决方案是在页面完全加载时动态附加facebook iframe。对于ajax调用,我只在加载时触发它们。

这使我的页面加载时间从嵌入式facebook iframe的7秒增加到动态追加的2.6秒。

相关问题