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的布局新特征谈谈常见布局方法
Jan 22 HTML / CSS
CSS3的first-child选择器实战攻略
Apr 28 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
Sep 10 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
Jun 02 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
Oct 28 HTML / CSS
使用HTML5原生对话框元素并轻松创建模态框组件
Mar 06 HTML / CSS
HTML5的结构和语义(2):结构
Oct 17 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
Aug 02 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
May 03 HTML / CSS
极简的HTML5模版
Jul 09 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
Jan 09 HTML / CSS
html+css 实现简易导航栏功能
Apr 07 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
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
完美的php分页类
2017/10/24 PHP
php递归函数怎么用才有效
2018/02/24 PHP
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
护理学专业推荐信
2013/12/03 职场文书
项目合作意向书范本
2014/04/01 职场文书
新年爱情寄语
2014/04/08 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
员工年终自我评价
2014/09/14 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
SQL Server Agent 服务无法启动
2022/04/20 SQL Server