Optimizing your pages for speculative parsing

优化您的页面进行推测性分析

传统上,在浏览器中,HTML解析器已经在主线程上运行,并在</script>标记后被阻塞,直到脚本从网络中检索并执行。Firefox 4及更高版本中的HTML解析器支持对主线程进行推测性解析。在脚本被下载和执行时,它会提前解析。与Firefox 3.5和3.6中一样,HTML解析器会为流中发现的脚本,样式表和图像启动推测加载。但是,在Firefox 4及更高版本中,HTML解析器还推测性地运行HTML树构建算法。好处在于,当推测成功时,不需要重新分析已经扫描的用于脚本,样式表和图像的传入文件的部分。不利的一面是,当投机失败时,失去更多的工作。

这份文件可以帮助您避免那些使猜测失败并减缓页面加载速度的对象。

投机加载成功

只有一个规则可以使链接脚本,样式表和图像的投机加载成功:

  • 如果使用<base>元素来覆盖页面的基本URI,请将该元素放置在文档的非脚本部分中。不要通过document.write()或添加它document.createElement()。

避免丢失tree builder的输出

当document.write()更改树构建器状态时,推测树构建失败,使得</script>标记之后的推测状态在document.write()解析所有插入的内容时不再成立。但是,只有不寻常的用途document.write()会造成麻烦。以下是要避免的事情:

  • 不要写不平衡的树。<script>document.write("<div>"</script>不好。<script>document.write("<div></div>"</script>没问题。