HTML5 解析规则分析


Posted in HTML / CSS onAugust 14, 2009

尽管HTML 5中的一些部分目前争议比较大,关于解析的这部分得到了浏览器厂商的一致认同。一旦浏览器开始实现它,用户就可以从所带来的兼容性提升中获益。

HTML 5解析规则的最初实现之一是为了支持HTML 5验证器而开发的。(如果你想测试这个验证器的话,http://ejohn.org应该是合法的HTML 5。)这个实现是用Java开发的,提供了SAX和DOM的接口,并且是开源的。

有趣的是Henri Sivonen(验证器的作者)最近为Gecko开发了一个全新的HTML 5解析引擎,会在下一个版本的Firefox中使用。

这个实现实际上是通过把Henri的HTML 5解析器的Java实现自动转换为C++来完成的。这个转换是自动完成的,所有的改动都会提交到Mozilla的代码库中。

一般来说,当提到这种大规模的程序式的把Java代码库转换到C++的做法时,我会跳出来。不过结果非常的出人意料:页面加载的性能提升了3%。

这些是建立在该代码库会提供的一连串的bug修正和一致性检查的基础上。你可以在Mozilla的bug库中查看该补丁的进度。

如果你想尝试新的解析器的话(你不太可能发现很多明显的变化,但是任何寻找bug的努力都是值得感谢的。),下载一个Firefox的每日构建版本,打开about:config,把html5.enable设成true就可以了。

如果想升级到HTML 5,那么现在就是时候。因为HTML 5是HTML 4和XHTML 1提供的功能的超集,所以升级是非常容易的。只需要把目前的(X)HTML文档类型声明换成HTML 5文档类型就可以了。

<!DOCTYPE html>你可以从HTML 5 Doctor网站中找到如何让新的HTML 5元素在所有浏览器上都工作的细节。

HTML / CSS 相关文章推荐
css3截图_动力节点Java学院整理
Jul 11 HTML / CSS
CSS3媒体查询Media Queries基础学习教程
Feb 29 HTML / CSS
基础的CSS3弹性盒Flexbox布局使用实例
Apr 08 HTML / CSS
css3弹性盒子flex实现三栏布局的实现
Nov 12 HTML / CSS
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
Mar 05 HTML / CSS
html5 拖拽上传图片实例演示
Apr 01 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
Jun 28 HTML / CSS
Html5 audio标签样式的修改
Jan 28 HTML / CSS
HTML5 Canvas实现烟花绽放特效
Mar 02 HTML / CSS
HTML5实现页面切换激活的PageVisibility API使用初探
May 13 HTML / CSS
HTML5表单验证特性(知识点小结)
Mar 10 HTML / CSS
Amaze UI 文件选择域的示例代码
Aug 26 HTML / CSS
HTML5 CSS3新的WEB标准和浏览器支持
Jul 16 #HTML / CSS
HTML5 b和i标记将被赋予真正的语义
Jul 16 #HTML / CSS
HTML5 新事件 小结
Jul 16 #HTML / CSS
html5 标签
Jul 16 #HTML / CSS
HTML5 Canvas标签使用收录
Jul 07 #HTML / CSS
HTML5 Canvas 起步(2) - 路径
May 12 #HTML / CSS
HTML5 Canvas 起步(1) - 基本概念
May 12 #HTML / CSS
You might like
文件系统基本操作类
2006/11/23 PHP
菜鸟学PHP之Smarty入门
2007/01/04 PHP
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
jQuery.each使用详解
2015/07/07 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
Python实现测试磁盘性能的方法
2015/03/12 Python
详解Python import方法引入模块的实例
2017/08/02 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
3个用于数据科学的顶级Python库
2018/09/29 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
详解Python3定时器任务代码
2019/09/23 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
幼儿生日活动方案
2014/08/27 职场文书
党员个人对照检查材料
2014/10/01 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
投资入股协议书
2016/03/22 职场文书