回答
我不认为文档类型对渲染速度有影响。但是HTML文档的结构和风格会有。
复杂风格(浮动,定位,边距,填充)的复杂HTML文档(巨大的DOM树,许多嵌入对象)可能需要多次渲染运行。此外,一个无效的HTML代码浏览器需要做一些错误处理来解析和构建DOM树(但这不是渲染)。
就拿Gecko reflow例如,显示Firefox的渲染引擎Gecko的是如何呈现的HTML文件(视频为mozilla.org,a Wikipedia page和google.co.jp)。
有趣的视频。看着它们,我不禁感觉到,解析CSS在渲染中扮演了比HTML更大的作用。当然,这两者不能完全分离。 – edeverett 2009-06-23 20:27:04
@edeverett:不解析,但应用它。 – Gumbo 2009-06-23 20:41:06
事实上,如果你在分析例如壁虎,风格系统和布局花费更多的时间在页面加载比解析。然而,quirks vs. standards模式会影响样式和布局,而不会影响解析。我没有测量过,但我期望怪癖模式是一个微小的慢一点,因为它在UA样式表中比标准模式有更多的样式规则。在解析中,使用<!DOCTYPE html>可以使解析器跳过对古怪的公共ID列表的搜索,但这是一种微观优化,您不应该为perf性能而烦恼(您应该出于其他原因)。 – hsivonen 2009-07-01 06:13:08
除了我自己的经验之外,我敢肯定任何差别都是微不足道的。
有一对夫妇在DOCTYPE选择的因素,可能会影响它:
- 严格的DOCTYPE可能涉及的分析较少的时间(不提供任何错误,很明显)。
- XHTML可能需要更长时间才能加载,因为所有内容都必须包含结束标记。
但是,根据您的渲染引擎以及它们如何处理源代码,这会有很大差异。
我还没有看到一个网站是如此优化,唯一剩下要看的就是文档类型。为了提高页面加载速度,我会使用诸如ySlow或Google Page Speed之类的工具来指出更加明显的需要改进的地方。
您是否意识到浏览器实际上并没有将您良好形式的标签汤解析为XML,除非您使用application/xhtml + xml MIME类型发送它? – Ms2ger 2009-06-23 17:08:43
谷歌是这个星球上最快的网站之一。他们使用以下文档类型:
<!doctype html>
在Google,“每个字节都很重要”。
可以肯定的是,谷歌首先做了很多其他的事情。当你在他们的级别,你需要考虑你发送的字符/字节数。所以,如果你认为改变你的文档类型会有所帮助,那就使用上面的内容。
我从来没有听说过现实世界中的渲染速度差异。同样经常有人建议XHTML渲染速度更快。这个想法是,一个格式良好的文档浏览器不必处理错误,但浏览器不知道它是否形成良好,直到它呈现它...
有大量的页面与严格的XHTML文档类型,不验证。
所有其他涉及的因素可能更重要 - 除了下载速度,您使用CSS选择器的方式当然可以有一个例子。
- 1. CSS选择器,IE浏览器和HTML文档类型
- 2. html 5文档类型和更旧的浏览器
- 3. HTML5文档类型和WAP移动浏览器
- 4. 文档类型和浏览器行为特别是MS IE 10
- 5. HTML5文档上传和浏览器
- 6. Perl文档(POD)浏览器?
- 7. 根据VB.net中的浏览器类型指定不同的文档类型
- 8. Chrome浏览器渲染速度错误?
- 9. JavaScript浏览器解析速度测试
- 10. 查找浏览器类型和版本?
- 11. 浏览器中的文档预览
- 12. 控制浏览器类型
- 13. 浏览速度取决于浏览器吗?
- 14. Web浏览器速度过快,如何控制速度?
- 15. tr高度和文档类型
- 16. Typescript对象(类型/成员)浏览器(浏览器/查看器)
- 17. JS检测浏览器的宽度和高度在Chrome浏览器和Safari浏览器,但不是IE9或FF9
- 18. 查找浏览器的SWT浏览器的类型/版本
- 19. 浏览器宽度和高度
- 20. 浏览器大小(宽度和高度)
- 21. 网站速度和杠杆浏览器缓存
- 22. 的Javascript滚动类和鼠标滚轮的速度在不同的浏览器
- 23. 浏览器对于主体/文档有最大高度吗?
- 24. 真正跨浏览器的方式获取文档高度?
- 25. 如何在浏览器中获取最大文档高度?
- 26. C#文档Web浏览器缺少HTML
- 27. 基于浏览器的文档扫描
- 28. “的OnEventName”在文档浏览器支持
- 29. 在浏览器中打开文档
- 30. 跨浏览器比较文档位置
如有疑问,请写下性能测试 – jrharshath 2009-06-23 11:54:45