`
sp42
  • 浏览: 147295 次
  • 来自: Canton
文章分类
社区版块
存档分类
最新评论

Douglas Crockford 新文《Fixing HTML》

阅读更多
Well, 我们亲爱的JS God---Douglas Crockford有新货到了:《Fixing HTML》,针对HTML 5的标准老人家谈了谈他自己的想法,在 http://www.crockford.com/html/
欢迎讨论。

《Fixing HTML》-Douglas Crockford 2007-11-28-

HTML需要修正了。HTML4的推荐建议发布于1999年。从那时起,web已经从一个文档传发系统演变成为一个应用程序传送的通道。得益于web开发社区的集体智慧和JavaScript表现出来令人意外的威力,我们已经迈出了相当的步伐,但也出现了一些限制,让HTML无法引领下一轮的革命。它不能不说是一种障碍。

HTML里面有不少好的想法,却在XHMTL标准中遭到弃舍。我的想法是我们应先回溯一下旧有方案,并重新给予关注。HTML的问题不在用更臃肿和更复杂的方式来代替,而是把这些功能的优点归纳出来,-尽管现存的功能有不少问题。

HTML演变成为应用程序传输通道的同时亦应保留其扮演一种文档格式之角色。

我提议的新语言草案并不完全兼容HTML4。HTML4也不是完全兼容HTML3,XHTML就更是没有兼容过其它,-所以这不是问题。

我的草案是相对友好、相对平缓的HTML5:

HTML

<html>标签有了一个可选的版本属性。如果该值是5,那么应遵从HTML5的规则。如果是4或没有这个值,那就是HTML 4的规则。
<html version=5>
无须doctypes

脚本Script

只允许一种脚本在页面内。这能为将来加入新浏览器语言作出简化,减少相关的统一对象模型和内存模型。这也是出于以一个安全的程序语言来代替JavaScirpt的目的。如果一种不安全的语言和一种安全的语言混合在一起是没有安全性可言的。语言是由 content-script-type来指定。默认是application/ecmascript。
<meta http-equiv=content-script-type content=application/ecmascript>
<script>不指定一个type或language。他们是<head>或<body>直接的子元素。<script>不会被立即执行。<script>不阻止其它资源的加载。当到达</head>时,所有在head部分的脚本会一一照顺序被执行。当到达</body>时,所有在body部分的脚本会一一照顺序被执行。

无须document.write。无须页内事件句柄。无须javascript: urls。

Frames

无须framesets、frames、或iframes。 这些属性的安全性都是有问题的。而取而代之的是“模块(modules)”。

模块Modules

<module>建立了一个包含通讯通道文档的sub-tree。参阅http://json.org/module.html的说明。我推荐Google的Gear和Adobe AIR这些更常见的通讯机制来代替<module>的这种机制。

CSS

默认的CSS内容需要标准化。参阅http://developer.yahoo.com/yui/reset/的例子,浏览器应该将默认的样式尽量公共化。

getElementsByCSSSelector方法可允许基于CSS选择符的标记来收集元素。

CSS方面有许多需作出重大的改进,当中的内容已经超越了本文的范围。CSS也应稍加关注便可得到改善。可在一个制约的环境内,针对对齐、布局、和屏幕排版几个方面上更智能地改善CSS。

编码 Encoding

HTML 5只允许一种字符编码就是UTF-8。默认的多语言The allowance of a multitude of encodings with default and discoveredencodings exposes users to security exploits and reduces the integrityof documents.
声明编码和文档本身保存的编码不匹配,这种情况虽较少见,但单使用一种编码方式就能很好地避免这问题。The expansion of asian text can be mitigated by gzipping.(亚洲系的语言需要而外gzip???不是太明白)

实体 Entities

HTML 5是严格按照HTML实体形式陈述的。在过去,一些浏览器往往允许各种实体古怪的写法出现,把用户暴露在不安全的范围。浏览器过于自觉地把有害的内容显示出来,从而导致一系列的安全攻击发生。

空白的标签 Empty Tags

标签<empty/>的形式是允许的,但<br>或<hr>就不一定要求。<script src="url"/>标签亦可使用这种形式。

自定义标签Custom Tags

HTML总是允许自定义HTML标签的。HTML5就是第一公民的类。

CSS可用于自定义的样式标签。
mymenubar {display: div; width: 100%;}
Display的样式属性可作用于一个标签名字。这意味着当定义一个新的自定义标签时要分析那个标签的特征。

getElementsByTagName方法可用于收集自定义标签。

自定义属性Custom Attributes

HTML总是允许自定义HTML属性的。HTML5就是第一公民的类。

getElementsByAttribute方法可用于收集自定义标签。它需要一到两个的参数。第一参数是属性的名称。第二个可选的参数是匹配的值。

属性值只是数字,字母和特殊字符:+ - * % . : _:时不一定需要加引号,但引用(Quoting)仍然是好的实践

就是这些

这几个方面着重于HTML应用程序的可靠性、安全性和性能上的改进,同时简洁性降低了web开发者的学习曲线。这些都可以整理成为Ajax开发的最佳实践,扩展了新功能而无须更复杂。第四版本的HTML是一次归纳并有所精简,使得浏览器上的实现更加直接明了。这对移动设备尤其重要,因为电池的容量很难满足复杂平台的运算。这里唯一新的功能只是module,针对安全问题方面的。Modules使得mashups更加地安全。

分享到:
评论
1 楼 i_love_sc 2007-12-01  
我感觉他的理念更像一个代码规范。
现在如果自己注意一下的话,给自己定一个代码规范,完全就能做到。里面所说的。
看了这篇文章之后,我对自己以后如何编写代码更有目标了。

相关推荐

    Really JavaScript!——Douglas Crockford大师见面会报道.pdf

    ——Douglas Crockford大师见面会报道.pdf" 以下是从给定的文件中生成的相关知识点: 1. Douglas Crockford是谁?:Douglas Crockford是一位资深的JavaScript架构师,JavaScript程序员的必读书籍作者,也是互聯網...

    ECMAScriptBestPractices:基于道格拉斯·克罗克福德(Douglas Crockford)的Javascript YUI系列的ECMAScript中的良好实践的实现

    道格拉斯·克罗克福德(Douglas Crockford)是JavaScript领域的权威人物,他的许多观点和实践对ECMAScript的发展产生了深远影响。这个名为"ECMAScriptBestPractices"的项目,显然是基于Crockford的思想和他在YUI...

    [JavaScript语言精粹].(JavaScript.The.Good.Parts).Douglas.Crockford.文字版

    [JavaScript语言精粹].(JavaScript.The.Good.Parts).Douglas.Crockford.文字版

    jsmin-php:Douglas Crockford的JSMin JavaScript压缩程序PHP端口。 不再维护

    Douglas Crockford是JSMin的创造者,他是一位知名的JavaScript专家,对JSON格式的发展也做出了重大贡献。`jsmin-php`是Crockford的JSMin程序的PHP实现,它允许开发者在服务器端用PHP来压缩JavaScript代码。 然而,...

    JavaScript语言精粹_修订版

    douglas crockford在本书中剥开了javascript沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的javascript子集,让你看到一门优稚的、轻量级的和非常富有表现力的语言。 Douglas Crockford是一名来自Yahoo!...

    transition-7.7.3.zip

    《基于Java的Douglas Crockford Base32实现解析与应用》 在IT行业中,编码和解码技术是数据传输和存储中不可或缺的部分。Base32作为一种常用的编码方式,广泛应用于URL安全、电子邮件地址和XML等场景。Douglas ...

    Advanced Javascript

    javascript界大神Douglas Crockford 的Advanced Javascript演讲PPT

    json.js 全部

    JSON.js这个压缩包包含的是Douglas Crockford开发的一个JSON相关的JavaScript库,版本号8e0b15c。 Douglas Crockford是JSON格式的主要推广者,他创建的这个JavaScript库主要提供了两个核心功能:JSON的解析(parse...

    向大师们学习Javascript(视频与PPT)

    Douglas Crockford:Douglas Crockford是JavaScript开发社区最知名的权威,是JSON、JSLint、JSMin和ADSafe之父,是《JavaScript:The Good Parts》(英文版、中文版)的作者。JavaScript的发明人Brendan Eich说他是...

    JSON-js.rar

    JSON-js 是一个JavaScript库,由著名的JavaScript专家Douglas Crockford编写,主要用于处理JSON(JavaScript Object Notation)数据格式。JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读...

    JavaScript语言精粹

    比较经典的JavaScript语言参考书,讲解比较到位,适合深度学习! 本书通过对JavaScript语言的...雅虎资深JavaScript架构师Douglas Crockford倾力之作。 向读者介绍如何运用JavaScript创建真正可扩展的和高效的代码。

    json-lib-1.0.jar

    JSON in Java [package org.json] ...Douglas Crockford douglas@crockford.com 2011-02-02 JSON is a light-weight, language independent, data interchange format. See Java使用json时用到的jar包

    libbase32:道格拉斯·克罗克福德的base32编码的干净实现

    Douglas Crockford的base32编码的AC实现。 Crockford计划旨在实现以下目标: 具有人类可读性和机器可读性。 紧凑。 人类很难操纵任意符号的长字符串。 防错误。 输入符号一定不需要键盘操。 明显。 人应该能够...

    JSON for java入门总结

    在Java中,处理JSON数据通常会用到Douglas Crockford开发的json.org提供的库,这个库在Java社区中被广泛使用。 这篇名为"JSON for java入门总结"的文章,可能是作者基于Douglas Crockford的JSON Java实现进行的学习...

    geocamDeveloperGuide:GeoCam 项目开发者指南

    Javascript 基于原型的继承的讨论很有帮助: https : //developer.mozilla.org/en/JavaScript/Introduction_to_Object-Oriented_JavaScript 如果您有兴趣深入了解,强烈推荐道格拉斯·克罗克福德 (Douglas Crockford) ...

    js语言精粹_holdtqj_js语言精粹_书_

    "JavaScript语言精粹"这本书,由Douglas Crockford撰写,是一本深入探讨JS语言核心特性和最佳实践的经典著作。 本书涵盖了JavaScript的基础语法、数据类型、作用域、闭包、原型和继承等多个关键主题。Douglas ...

    JavaScript语言精粹_修订版.pdf

    douglas crockford在本书中剥开了javascript沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的javascript子集,让你看到一门优稚的、轻量级的和非常富有表现力的语言。作者从语法、对象、函数、继承、数组...

Global site tag (gtag.js) - Google Analytics