JS花了很多时间进行评估

时间:2011-01-24 08:41:08

标签: javascript html

我有一个我在很多网站上使用的脚本。

除了嵌入脚本的页面加载速度非常慢的一个站点之外,它的工作方式非常完美(我认为它不是连接缓慢,而是脚本方式)。

问题是:(我在Chrome中使用了时间轴)

 <body> ....
 <script...>here I load script tag into the head</script>
  .. </body>

5秒后加载HEAD脚本。 (所以这个片段运行良好),但它的评估仅在29秒后发生!

是否可以阻止我的脚本评估?这可能是因为剧本放在身体而不是头部吗?

2 个答案:

答案 0 :(得分:1)

不阻止但是延迟。是。如果它加载了脚本和其他重的(对于E.A.类似flash)对象,则可能就是这种情况。首先加载头标签,如果它在体内,那么它将在后面处理。阅读本文:Load and execution sequence of a web page?

答案 1 :(得分:1)

如果您的脚本设置为运行“onload”并且页面加载需要29秒,那么这将导致延迟。

将脚本包含放在HTML文件的底部实际上被认为是最佳的,我认为这就是你所做的。将脚本放在body标签中而不是头部,应该会使整个页面加载速度更快。

<强>更新

以下是一些参考资料,说明为什么要将脚本放在网页的底部......

对于表现:

http://developer.yahoo.com/performance/rules.html#js_bottom

对于搜索引擎优化(只有在你有一长串内联JavaScript时才真正相关):

据称,一些搜索引擎只下载网页的第一个“n”千字节 - 所以你不希望你的JavaScript包含在页面的那一部分中,因为它会阻止真实内容被编入索引。

Google Analytics

现在,谷歌分析是一个有趣的。他们希望您将JavaScript放在正文的顶部,原因如下。

如果您的网页需要4秒钟加载,那么将Google AnalyticsJames放在正文顶部意味着几乎所有访问都会记录到Google。如果您将Google AnalyticsJavaScript放在网页底部,那么到达页面并在页面完全加载之前再次离开的访问者将不会被记录。

示例...我到达您的网站上寻找有关“汽车”的信息,一旦页面出现在我的屏幕上,我会看到“汽车”这个词,然后点击它。如果Analytics JavaScript位于页面顶部,您将看到我来到主页并点击了汽车。如果你把它放在底部,你会认为我直接到达了“汽车”页面。因此,为了准确起见,您需要在开始正文标记之后放置Google AnalyticsJavaScript。