从基础开始:Qomo OpenProject中的一些关键词(2)

七、Qomo OpenProject中的一些关键词(2)

接下来我们讲述一些在Rich Web Client中,而不仅是JavaScript中涉及到的一些关键词。我希望这对你理解Qomo OpenProject的设计,乃至整个B端开发的现状有帮助。

1. Rich Web Client 和 Rich Internet Application(RIA)

首先,RIA是Macromedia基于Flash在浏览器上的广泛应用而提出的一个“实现丰富的浏览器端应用”的框架。按照Macromedia的解释,RIA是符合Rich Web Client的定义的。也就是说,RIA是Rich Web Client的一个具体的实现框架,也是开发人员在IE等能够运行Flash环境的浏
览器上实现Rich Web Client的可选方案。

但显然RIA不是Rich Web Client的全部。W3C已经提出了在2006年里制订Rich Web Client(RWC)标准的计划。然而在这个标准还没有出来的时候,如何说明RWC的概念呢?

从W3C对RWC的工作定义里可以看到,一个满足RWC的框架至少具备这样的一些特点:

  • 在浏览器上实现对兼容文档格式(XHTML,SVG,SMIL,XForms等)进行处理的能力。
  • 具有丰富的界面交互能力。
  • 具有丰富的客户端逻辑。

W3C对RWC的规范包括“兼容文档格式”、“Web APIs”和“Web应用程序格式(语言&界面规约)”三个部分。这些内容按计划应当在2007年10月间完成标准制定。——GOD!

相关资料参考:

2. DOM与DHTML

微软在IE 4.0时代提出了Dynamic HTML (DHTML)标准。在Microsoft的DHTML中包含了如下内容:

  • 动态样式表(Dynamic Styles)
  • 动态上下文(Dynamic Content)
  • 位置和动画(Positioning and Animation)
  • 过滤器和切换器(Filters and Transitions)
  • 字体下载(Font Download)
  • 数据绑定(Data Binding)
  • DHTML对象模型(DHTML Object Model)

这其中与W3C提出的DOM(Document Object Model)相对应的其实只有DHTML Object Model这部分。而“Dynamic Styles”、“Positioning and Animation”、“Font Download”等则部分地与W3C的CSS 1相容。

在IE5-IE6中,IE为DHTML实现了更多的特性,这包括:

  • Dynamic HTML (DHTML) behaviors
  • HTML Applications
  • HTML + TIME 1/2
  • Vector Markup Language (VML)

由于MS对Web浏览器的实现一度远远地超前了W3C对Web Browser相关的规范的制订,加上MS有意识地改变协议来定制“事实标准”。因此在IE5以后出现的许多浏览器特性都与W3C规范并不相容。——当然在此期间,IE也在对HTML4、DOM1/2和CSS1/2的兼容上做出了一些实际工作。

DHTML一度被MS称为“DHTML DOM”,然而我建议你将二者区分开来。许多在DHTML里能使用的技术,在遵循W3C's DOM规范的浏览器上根本不能使用。

由于DOM与DHTML对Document Object的理解存在分歧,加上DHTML中既已存在的开发模型设计。因此在IE5以后,DHTML中存在了两种访问Document Object的方式。作为一种“简单而粗糙”的分类,你可以将“名字中包含Element的”绝大多数方法/属性归为DHTML的定义,而将“名字中包含Node”的归为DOM的定义。同样的方式,你可以发现一大部分关于“Name/Vlaue”的属性方法是应该归为DOM的定义的。

你可以参考的一份重要的资料是:“DOM L2的框架图”(附后)。

相关资料参考

DOM L2的框架图:

JavaScript&HTML&DOM的最重要的参考书《JavaScript 权威指南》:

3. CSS与Dynamic CSS(DCSS)

我第一次看到Cascading Style Sheets(CSS),是从一本奇怪的书上。他讲述到了CSS的历史:这是一种从印刷业的既有标准中演化出来的网页排版样式规范。

这样的定义使得我在其后的很多年之中受益匪浅。它使我充分地理解了CSS中关于“度量单位(units)”的极端混乱和复杂的状况,并能使我从各种位置、高度以及其它古怪的定义(包括它们的名字)中找到一种最适宜于网页的形式。

在绝大多数的时候,你应该记住的是:你在做的是一个网页,而不是一份印刷用的手册。

所以,你可以尽情地利用与网页相关的技术与特性,而忽略其它的部分。——当然,如果你做一些“必须相容于不同浏览平台和物理设备(如手持)”的网页,那么你应该从头阅读W3C的CSS规范。——既便最后你发现它对你的开发工作起不到任何实际的作用。

而Dynamic CSS则相对地少有人知,除非你仔细地阅读MS的官方手册。在不多的几乎地方提到了这个名词。它主要表达的是三种特性:

  • 在DOM中动态修改和构造CSS样式(styles)和规则(rules)
  • 在CSS样式中使用表达式(Dynamic Properties/Expression)
  • 在CSS样式中使用行为(Behaviors)

在样式表方面,MS对CSS 1的实现是完整但不完全规范的,对CSS 2的支持则不完整。关于这些细节可以参考附件中的《CSS权威指南》。

相关资料参考

CSS的最重要的参考书《CSS权威指南》:

4. HTML、XHTML、XML、X……

关于这个讨厌的话题,我实现不想说什么了。如果你有兴趣,看看下面这张图吧。

它同时也是一份完整的索引。——点击一下每一个方块试试?

5. IE中的扩展技术

除了在前面的章节中提及的MS对W3C的标准的扩展技术(如Behaviors、TIME、Data Binding等)之外,IE中主要的扩展技术包括:

  • ActiveX Object : 实现Flash、SVG、OWC(Office Web Component)、VML等的核心技术。
  • ActiveX Form : 一些高级语言可以通过它来实现更复杂的IE扩展。
  • java applet : 很远古了。
  • DHtmlEditor : IE5以后版本已经内置了一个Editor,这是应用很广泛的一个扩展技术。
  • Flash : Web上矢量图形的事实标准(尽管它只是ActiveX扩展的一个具体实现)。
  • VML : 使用VML来实现矢量图形,尽管没Flash/SVG强大,但胜在IE内置支持。
  • OWC : 四个基本组件:电子表格(SpreadSheet)、图表(Chart)、数据源(DataSourceControl)、动态报表(PivotTable)
  • External HOST : 透过window.external来访问由HOST应用为IEFrame实现的接口对象/方法。