互操作性与兼容性(1)

  

Web开发是非常困难的。现在的主流浏览器种类繁多,各种配置数以百万计,而且数量还在不断增加,再加上超过10亿的Internet用户,已经从整体上对Web开发过程进行了重新定义。Web开发人员和浏览器供应商已经尝试用现代化的标准(HTML 4.01,HTML 5,CSS 2.1和CSS 3)来驾驭这些混乱。与先前版本相比,IE 8为那些被广泛采用的Web标准提供了更好的支持,在很多(但非全部)情况下,使开发人员能够编写出可以在多种浏览器中正常工作的页面。这一章将介绍这些标准以及IE中的互操作性改进、详细的兼容性功能,还将介绍一些方法,用于处理标准与兼容性之间经常存在的冲突。

2.1  标准支持与互操作性

IE开发人员在整个IE 8发布周期中所表达的“默认标准”哲学指向了一个新的产品目标——对更大范围的标准提供支持。IE 8非常引人注目地提供了对CSS 2.1规范的全面支持,并对HTML 5规范中一些比较稳定的新功能提供了支持。本节重点介绍了IE 8相对于IE 7所做的改进,并为那些寻求创建互操作性Web应用程序的开发人员提供了一个支持基础。

HTML 4.01,HTML 5和DOM规范支持改进

IE 8在对HTML 4.0标准的支持方面进行了大量改进;在当今的Web世界中,HTML 4.0是应用最多、最受认可的文档标记语言。IE 8以IE 7为基础,在实现IE 4.01规范方面进行了以下增强与改进内容:

●       <p>元素结束:只要段落元素(<p>)结束标记之前出现以下标记之一,或者根本就没有出现它的结束标记,就会自动关闭该元素:<table>,<form>,<noframes>和<noscript>。

●       <object>回退:当IE不能从一个<object>标签中加载资源时,IE将显示该标记中包含的内容,以进行“回退”。

●       <object>作为图像:当IE遇到一个引用图像资源的<object>标记时,它会呈现该图像,就像这个图像是嵌入在<img>标记中一样。在过去的版本中,IE将通过这个标记来显示图像资源,但不能恰当地调整大小,也不提供边框,在某些情况下会显示滚动条。

来自W3C的HTML 5和各种DOM规范为Web开发人员提供了非常丰富的工具和事件,用以增强网页和提高生产效率。IE 8实现了这些规范中的一些组成部分(这些部分已经在其他浏览器中得到了实现):

●       Ajax哈希导航:基于哈希的页导航(在这种情况下,URL中仅段组件发生变化)现在被存储为导航事件。也就是说,用户可以使用后退和前进按钮在一个Ajax应用程序的状态之间进行“导航”。这其中包含了对onhashchange DOM事件的支持。

●       DOM存储:Web应用程序可以访问新的存储对象,将数据和设置持久存储在用户的计算机上。window.sessionStorage和window.localStorage对象可以为这一数据应用提供高达10MB的本地存储空间。

●       跨文档发送消息:这一增强功能为浏览器窗口中基于<iframe>的文档引入了一种新的通信结构,即使这些文档来自不同域时也能使用。这些文档现在可以使用postMessage API,以确保跨文档数据传输经过了双方同意,从而为用户提供了额外保护。

●       联机/脱机事件:现在可以使用onoffline和ononline事件来检测网络连接的丢失与恢复。将流行的Ajax技术与DOM存储相结合,应用程序即使在脱机状态下也能正常工作。

●       CSS 2.1和CSS 3支持改进。

IE 8对CSS 2.1规范提供了全面支持,这一标准被广泛用于定义文档样式、构建丰富的Web用户界面。表2-1描述了自IE 7支持CSS 2.1以来所更改或添加的属性。

读书导航