[ASP.NET入门随想九] 宽容
——W3C 的Web标准
——W3C 的Web标准
古老的山谷村民生活富足,守旧老人维护着经典和秩序。一位不满现状的漂泊者却宣称外面有更好的世界在等着大家,并鼓动村民跟随前往。但守旧老人的威严和律法的神圣压制了村民的躁动,漂泊者也被处死。一天灾难降临山谷。尽管守旧老人依然试图维护经受村民的求生欲望挑战的律法。但暴动还是发生,老人们被击败,新的道路和新的生活被村民找到。怀着感恩之心,后人把以前的漂泊者奉为先知,尽管他早已尸骨无存。
—— 房龙《宽容•序言》
■ 宽容 – W3C 的梦想
每一部煌煌巨作似乎都始于纯真的梦想,Tim Berners-Lee在BLOG中写到:“万维网的目标就是建立一个可以分享信息的地方。我们应该有一个地方,每个人都可以进行贡献和创作。”于是,一个用于展示信息内容,脱胎于SGML语言,基于纯文本的超文本标记语言(HTML)问世了,配上用于信息定位的资源定位技术(URL)和用以共享的应用层协议(HTTP),这就是Berners-Lee给我们带来的Web架构。
随之出现的万维网开始变得混沌起来,各种力量间的博弈充满灵动、鲜活、阴谋和智慧:微软利用其操作系统优势捆绑IE挤跨网景;传说百度阳谋封杀GOOGLE长达一两年之久;李开复最近似乎成了中国计算机专业学生的教父;中国南北电信自从分割以后就相互难通……几年光景下来,人们发现万维网看是似world wide,却往往从属于某种商业力量,划江而治。
天下分久必合似乎永远是真理,Web标准是W3C工业联盟针对混沌的WEB客户端技术而树起的一面自由之旗,它梦想做到:让所有人受益于万维网,不会因他们的硬件、软件、网络基础设施、母语、文化、地理位置、生理或心智能力而有任何分别。
■ 书同文 – 标记语言的发展历程
撇开远古时代的SGML不谈,最出名的标记语言当属Tim Berners-Lee的HTML。在设计之初他的想法非常简单:将页面编辑与浏览系统合二为一,以文本格式为基础,用标签(Tag)来描述Web页面及页面间链接。其具有些优势使之广为流传:一是简单,几乎任何人用一个下午的时间就能掌握并用记事本编辑出Web页;二是可以在任何平台和浏览器上运行;三是超链接使得万维网中所有Web页形成网状互连。
HTML既有控制文档结构的标签,如<p>、<ul>,又有控制表现的标签<font>、<b>,这很容易使得网页编辑者把文档的结构和表现混杂在一块,最为人熟知的莫过于table排版模式,嵌套的若干表格中可能没有一个是真正用于列表数据。这是HTML遇到的第二个麻烦,带来的问题是文件尺寸无限变大、修改样式困难等,更重要的是,图书管理员角度的数据结构已被表现标签完全破坏,如 “作者:<b>老燕</b>”。作为信息交换的媒介,被破坏的数据结构使得HTML页面二次利用价值很低。96年逐渐成熟的CSS使得页面结构与表现彻底分离成为可能,也就是说在HTML文档中可以不出现任何页面表现标签。与CSS相辅相成的HTML标签是<div>(块)和<span>(内置),它们提供一个把结构添加到文档的通用机制,而未在内容中引入其他表现层的东西。
<html><head><title>宽容——W3C的Web标准</title></head><body>
<div id="secondTitle">ASP.net入门随想九</div>
<div id="title">宽容——W3C的Web标准</div>
<div id="author">老燕</div>
<div id="summary">简介Web标准的发展与作用</div>
<div id=” catalog”><ol><li>宽容 – W 3C 的梦想</li>
<li>书同文 - 标记语言的发展历程</li>
<li>佛靠金装 – CSS的作用</li>
<li>沟通 – DOM与ECMASript</li></ol></div>
<div id="content">正文段……</div>
</body></html>
<div id="secondTitle">ASP.net入门随想九</div>
<div id="title">宽容——W3C的Web标准</div>
<div id="author">老燕</div>
<div id="summary">简介Web标准的发展与作用</div>
<div id=” catalog”><ol><li>宽容 – W 3C 的梦想</li>
<li>书同文 - 标记语言的发展历程</li>
<li>佛靠金装 – CSS的作用</li>
<li>沟通 – DOM与ECMASript</li></ol></div>
<div id="content">正文段……</div>
</body></html>
从一开始HTML的一项基本规则是如果浏览器遇到一个不理解的标记符,就忽略之。这样的灵活性使得我们可以在文档中出现<author>标记符,然后浏览器只是简单地跳过它。这是一种实践和扩展Web,而又保持向后兼容的好办法。但更好的方法是不再强烈依赖于集中固定的标准,而是让浏览器能够学习新的标记符。突然之间,你可以不再担心标记符的意义,所有束缚一下被解开。或许我们用图书管理员的角度来考虑问题是最适合不过的——我们需要的只是向对方传递数据本身,这种描述甚至可以方便地从数据库直接生成,于是有XML文件如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<article>
<title>宽容——W3C的Web标准</title>
<secondtitle> ASP.net入门随想九</secondtitle>
<author>老燕</author>
<summary>简介Web标准的发展与作用</ summary >
<catalog>
<para>宽容–W 3C 的梦想</para>
<para>书同文-标记语言的发展历程</para>
<para>佛靠金装–CSS的作用</para>
<para>沟通–DOM与ECMASript </para>
</catalog>
<content>正文段……</content>
</article>
<article>
<title>宽容——W3C的Web标准</title>
<secondtitle> ASP.net入门随想九</secondtitle>
<author>老燕</author>
<summary>简介Web标准的发展与作用</ summary >
<catalog>
<para>宽容–W 3C 的梦想</para>
<para>书同文-标记语言的发展历程</para>
<para>佛靠金装–CSS的作用</para>
<para>沟通–DOM与ECMASript </para>
</catalog>
<content>正文段……</content>
</article>
但仅仅有上述描述文件,标签的意义只有自己知道,定义文件(DTD或Schema)正是用以描述标签的含义和结构。其它系统通过定义文件来识别你的XML,或再配上XSL样式文件送给浏览器浏览。
可以预见的是,如果万维网上的所有Web页都是XML文件,信息流可以快速流转。但现实是,全球已堆砌出近80G技术水平参差不齐的HTML网页。要想让这些网页在一夜之间一蹴而就成XML显然缺乏足够动力,于是W3C制订出被其称为“温和的、友好的升级方式”的页面描述语言——XHTML,XHTML改进关键在于两点,一是遵循XML语法规则书写HTML代码;二是表现与结构分离。
■ 佛靠金装–CSS的作用
样式表(Cascading Style Sheets)是一种告诉浏览器怎样为页面内容进行修饰(如字体、颜色、空间)的简单机制,W3C在未被广泛支持的CSS2甚至梦想支持可视、听力、盲文等装置,用他们的官网原话说就是用眼睛、耳朵、声音和触控浏览网页。从用户体验和宽容的角度来看,CSS未来所承担的任务不是给网页化化妆这么简单。
CSS的语法并不复杂,排版定位依赖于盒模型,如图9-3。但令人心烦的,主流的IE6.0和FireFox 1.x对盒模型的细节解释有所不同,据传IE7依然存在CSS bug。
页面对象模型(Document Object Model)用于提供统一的应用程序编程接口,将HTML或XML文档还原为一个树形(Tree)数据结构,Tree的每个节点表现为一个HTML标记或者HTML标记内的文本项。树形结构精确地描述HTML文档中标记间以及文本项间的相互关联性。只要修改相关Tree节点都具有的 nodeValue属性值即可操作文档中的任何标签,也可以方便地从页面的任何地方开始,沿着文档的树型结构在上(parent)、下(child)以及一侧方向(sibling)做节点导航。另外,DOM技术允许我们操纵文档的Tree结构,包括创建、删除以及移动节点。
基于DOM的ECMAScript被W3C当着一统江湖的Web脚本语言标准。所谓的脚本语言是内嵌到HTML文件中并由浏览器解释执行以增加互动性和减轻服务器压力,基于对象(Object)和事件驱动(Event Driven)。但JavaScript和Jscript这对同父异母兄弟长期以来一直受到歧视,程序员们笑称它们除了能在网页中加点花花草草外别无特长,尽管程序员们需要花费大量时间来编写表单验证脚本程序,用户却只要在浏览器中点一下即可禁用而绕开验证。更令人抓狂的是各个版本的javascript虽然号称符合标准,但却都貌合神离,程序员们受尽苦头!
尽管近期随着AJAX技术的出现,让javascript老树发出新芽,火了!可是我能放心把网站建立在一个脆弱的基础之上吗?网易的126邮箱最近改版,号称极速,可是关了javascript连邮箱操作界面都出不来,老妈妈能知道里头的缘由吗?很久以前看到这么一句告诫:不要依靠JavaScript,唉,我犹豫,徘徊中……