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画一个阴阳八卦图
Mar 09 HTML / CSS
CSS3等相关属性制作分页导航实现代码
Dec 24 HTML / CSS
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
Feb 04 HTML / CSS
CSS3中的常用选择器使用示例整理
Jun 13 HTML / CSS
CSS3 二级导航菜单的制作的示例
Apr 02 HTML / CSS
CSS Houdini实现动态波浪纹效果
Jul 30 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
Oct 29 HTML / CSS
前端canvas水印快速制作(附完整代码)
Sep 19 HTML / CSS
HTML5实践-图片设置成灰度图
Nov 12 HTML / CSS
background-position百分比原理详解
May 08 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 HTML / CSS
css中:last-child不生效的解决方法
Aug 05 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
header跳转和include包含问题详解
2012/09/08 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
python的正则表达式re模块的常用方法
2013/03/09 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
python3下pygame如何实现显示中文
2020/01/11 Python
什么是python类属性
2020/06/10 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
企业行政文员岗位职责
2013/12/03 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers