HTML5引入了和 标签,第一眼看上去,它们和图像标签一样好用。只要在其中插手一个URL,阅读器就会引入数据流。然而,如果它真有这么简单的话,为什么我华侈了两个星期来让所有主要的阅读器可以播放根基的音频文件呢?
个别阅读器构建者只实现了部分而不是全部的音频视频格局确实不是HTML5委员会的错。年夜家都是人,都想要争夺统治权。往往在一个阅读器上工作正常的文件到了别的一个阅读器上却不克不及工作了。开辟者要如何测试这一点呢?API开辟者很是智慧,他们插手了canPlayType函数,但就是这个函数也不是所有阅读器都支持的。
事实9:各阅读器的实现是自力的
HTML5的田园诗般的愿景是一回事,其实现的蹩脚的现实是另外一回事。诚然,法度员正在尽他们最年夜努力来实现架构师的梦想,但就是有一些标签和对象无法正常工作。
例如,有很多来由去喜欢HTML5的地理定位API。它提供了对隐私的一定水平的包含,对切确度也有节制。要是它能一直一贯地工作该有多好——有的阅读器就会总是超时,这个阅读器仍是不太智慧,因为它应该知道台式机上是没有GPS芯片的。
最后,人们会去埋怨阅读器没有完全实现HTML5的特性,而不是去责备API自己的布局问题。这一事实凸显了Web开辟者在开辟基于HTML5的Web应用时所面临的挑战。
事实10:硬件idiosyncracies带来新的挑战
埋怨某些阅读器构建者超出了职责要求而提供更好的性能表示似乎也不公允,但这并不是是以怨报德。一个法拉利拥有者在绕过了一个灯杆以后,他就会发现有时候额外的动力并不是总是功德。
Microsof通过将IE和低端硬件驱动整合而提升了IE阅读器中画布对象(Canvas object)的性能。它甚至做了一些游戏比如pirateslovedaisies来显示其性能。
但现在法度员们需要注意这些附加功能是否能够实现,并且这些代码的运行速度也是无法包管的。
例如,pirateslovedaisies的游戏设计者设计了一个开关来开启或封闭IE支持的特性。可是,有没有一个API来奉告你这些特性是什么呢?没有。最简单的体例是通过阅读器名字来进行测试并估算帧速率。很多游戏开辟者都有多年经验来体会可用硬件的范围,唯一的解决体例就是制止创新,但这将是Web开辟者又要解决的一个新的问题。
事实11:政治一直都存在
有个叫Ian Hickson的人,是HTML5标准的主要起草者,也是生命的最高专制者(the Supreme Dictator for Life)。我想他们这是在恶作剧,因为这样的头衔实在太不匹配了。标准的编写者只是在提出建议,阅读器公司的编码天才们才是最终做出决定的人。他们可以选择实现或不实习某个特性,然后Web开辟者就要去测试成果是否稳定。几年以后,标准就会按照与实现水平的匹配情况做出改变。
很多Javascript开辟者将兼容性问题都留给了开辟代码库的人,比如jQuery。这些层让我们没必要去体会不合阅读器之间的不同。可是,这些代码在未来是否足够硬朗?只有时间才会知道。
这个议题凸显了这个范畴中最底子的问题。我们想要自由、创作发现性以及因为阅读器间的猛烈竞争而产生的丰富特性。创新的脚步很是快,可是因为阅读器开辟者都争相添加新的特性以赢得先机,使得各个阅读器之间有更多的不合。
但我们希望能有一个统一的指挥者这样就可以取得稳定性。可是,对专制和自治间的争斗,历来都没有一个抱负的解决体例。与其为这些差别头疼,我们也许想要听听Winston Churchill对下议院所说的话:"事实上,民主是一种最糟糕的政府形式,除非其他的形式都颠末了一次又一次的试验。"
英文出处:11 hard truths about HTML5
译文出处:Web App Trend