1.6 在现实中,我们想做的是什么
在现实中,我们不会创建了一个网站后,然后去做另一个项目,而对前一个项目的工作置之不理。我们会创建Web应用程序,并对其进行更新、微调,对其潜在的性能问题进行测试,调整其设计、布局和内容。
换句话说,在现实中,我们都会再次访问我们所写的代码。所以我们编写代码时,会使用最可靠、易于维护并高效的方法,并便于以后访问代码对其进行必要的完善和修改。显然,这不仅对我们自己创建和维护的网站及Web应用程序十分重要,同样,也对为我们客户所创建和维护的网站及Web应用程序同等重要。
我们需要不断地探讨新方法和更好的方式编写我们的编码。HTML5和CSS3在此方面迈出了一大步。
1.6.1 多种浏览器的市场
尽管HTML5还在发展中,并在标记内容方式上呈现了巨大的变化,但是值得注意的是,这些变化并没有引起旧版浏览器不兼容,或版面问题及页面错误。
这就意味着您可以在您的项目中使用任何有效的HTML4或XHTML标记,将doctype更改为HTML5(将在第2章中介绍),并且网页仍旧有效并与之前的显示相同。在HTML5中新添加和改进的标记功能可以这种方式实施在编程语言中,以确保向后兼容老的浏览器(甚至是IE6)!
但那些仅是标记,那么其他的HTML5新功能、CSS3以及相关技术呢?根据一组数据表明1,大约47%的用户所用的浏览器版本不支持大部分新功能。
因此,开发人员便想出各种解决方案向那些采用HTML5和CSS3新功能的用户提供同等经验。有时,就像提供一个备选方案一样简单。例如,向没有本机视频支持的浏览器提供一个Flash视频播放器。在其他情况下,也有必要使用脚本模拟支持新功能。这些“间隙填充”技巧称为polyfills。在创建高性能Web应用程序时,依靠脚本模仿本机功能并不总是最好的方法,但为了力求发展使用这些新功能,有必要采用这种方法,尽管会增加一些痛苦。稍后我们会在本书中举例论证。
所以,我们向您推荐撤销选项及polyfill以解决浏览器的不兼容性。我们将尽力提醒您使用这些选项时存在的潜在弊端和隐患。
当然,有时候也根本不需要撤销选项及polyfill。例如,当我们使用CSS3在框中创建圆角时,在老的浏览器中会看到正方形框,但没有任何影响。网站的功能性并没有降级,那些用户也没有任何损失。
关于对浏览器的有限支持,您可能感觉有些气馁。不要这样!这里有个好消息,全世界超过40%的用户所使用的浏览器都对我们在本书中讨论的新内容提供支持。这种支持每一刻都在增长,新浏览器版本(比如Internet Explorer 9)继续添加对这些新功能和技术的支持。
我们在发展过程中不断吸取教训,因此我们将确切地通知您哪些地方还缺少支持,以便于您在使用HTML5和CSS3时,知道所创建的哪些内容可以呈现在读者面前。即使没有HTML5和CSS3的新功能,我们也将讨论一些方法,确保您在使用没有获得技术支持的浏览器时得到一些可行性方案。
1.6.2 不断发展的移动市场
如今开始学习并使用HTML5和CSS3的另一个原因是迅速发展的移动市场。
根据2009年的市场调研机构StatCounter的报告,仅有超过1%的用户在手机上使用Internet2。在不到两年的时间里,这个数字以4倍的速度增长,现已超过4%3。一些报告显示,根据不同的分析方法,这些数据值可能更高。无论如何,移动市场在以惊人的速度增长,这是一个不争的事实。
4%的使用率似乎看起来很小,公正地说,确实是这样。但是它的增长率是引人注目的—两年内增长400%。对于那些学习HTML5和CSS3的人来说,这意味着什么呢?
HTML5、CSS3以及相关的前沿技术在许多移动Web浏览器中得到了很好的支持。例如,iOS设备(比如iPhone和iPad)上的Safari、Opera Mini和Opera Mobile,以及Android操作系统的Web浏览器都对HTML5和CSS3提供了强大的支持。由这些浏览器所支持的新功能及技术包括CSS3的颜色和不透明度、画布API、Web存储、可缩放矢量图形、CSS3圆角和离线Web应用等。
实际上,我们在本书中将要介绍的一些新技术设计时已考虑了移动设备。已设计了离线Web应用和Web存储等技术,这在一定程度上是由于越来越多的人通过移动设备访问网页。此类设备对在线数据使用通常有一些限制,因此脱机访问Web应用程序会很有用处。
我们将在本书第10章介绍这些主题。当然,我们也将通过本书的其他章节向您介绍针对各种设备和平台创建网页所需的工具。