Javascript性能:多个脚本块与单个更大的块



我在IE8上观察到了一个奇怪的行为(在FF 3.5上没有看到)。我创建了两个示例网页,其中只有一些JS。Page1:3个JS块(标签),其中包含非常小的内联JS。Page2:与上面的JS相同,但所有3个脚本都组合在一个块中。

我使用dynatrace打开页面,发现对于page1,每个脚本的解析/执行时间约为27-30ms。总时间约为80ms。对于Page2,组合JS花费了约30ms。有人能解释一下这背后的原因吗?将较小的JS块合并为一个更好吗?

PS:对于所有脚本,dynatrace添加的检测时间可以忽略不计。Firefox 3.5没有显示此行为。此外,对于每个较小的JS块,FF上的执行时间为~1ms,对于组合的JS,执行时间为~3ms。

当浏览器遇到脚本块时,它必须在执行该块中的脚本时暂停呈现页面。

我不知道为什么这会被认为是IE8而不是FF。这可能是因为上下文切换在IE8中成本特别高,或者FF可能会在幕后做一些工作来组合你的块,如果它确定可以的话(我只是猜测这里)

脚本块也会阻止并行下载。如果您从多个主机名下载映像,则这可能会并行发生,除非您正在执行脚本块。

总的来说,我认为最好的做法是组合脚本块。就我个人而言,我建议您将它们移到一个单独的文件中。

顺便说一句,当您将度量移动到另一个文件时,度量会发生什么?

请参阅雅虎开发者网站加速最佳实践。

相关内容

  • 没有找到相关文章

最新更新