自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

有關(guān)HTML 5的流言與真相

開發(fā) 前端
你是免不了的。每個人都在談?wù)揌TML5。自眾人開始濫用圓角和漸變效果以來,HTML5或許是最熱炒的技術(shù)。然而,許多人眼中所謂的HTML5實際上只是老式的DHTML和Ajax。
 

你是免不了的。每個人都在談?wù)?A >HTML 5。自眾人開始濫用圓角和漸變效果以來,HTML5或許是最熱炒的技術(shù)。然而,許多人眼中所謂的HTML5實際上只是老式的DHTML和Ajax。有關(guān)HTML5的諸多信息中魚目混珠,因此,JavaScript專家雷米·夏普(Remy Sharp)和Opera公司的布魯斯·勞森(Bruce Lawson)著眼這些流言,對其中的常見謬誤和事實做了分類整理。

首先,一些事實。

很久很久以前,世上有一門叫做HTML的可愛語言,這門語言簡單易學(xué),用它寫網(wǎng)站真是輕而易舉。因而,所有人都用這門語言,從此,Web也從一堆物理論文的鏈接變成了今天我們所熟知和喜愛的模樣。

大多數(shù)頁面并不遵循這門語言的簡單規(guī)則(因為寫這些網(wǎng)頁的人對內(nèi)容本身要比媒介形式更為關(guān)心),因此所有瀏覽器都必須忽略錯的代碼,盡***努力猜測作者到底是想怎樣展示內(nèi)容。

1999年,W3C決定終止HTML的制定工作,轉(zhuǎn)而制定XHTML。一切都很***,直到少數(shù)人注意到從XHTML升級到XHML2的升級工作幾乎脫離實際。XML的標準要求瀏覽器一旦碰到錯誤,就停止工作。另外因為W3C正在起草一種比老式、簡陋的HMTL更出色的語言,它不贊成(deprecate)使用img和a標簽這類元素。

Opera和Mozilla開發(fā)人員不認同這種做法,并于2004年給W3C提交了一份報告,該報告稱:“我們認為網(wǎng)頁應(yīng)用(Web Applications)是一個極為重要的領(lǐng)域,但當前技術(shù)并未為這一領(lǐng)域提供充分的支持。在多方制定的規(guī)范出來之前,單一廠商的解決方案存在的潛在風(fēng)險在不斷增大?!?譯注:暗指Adobe的Flash技術(shù)?)

這份報告提了7條設(shè)計原則

◆ 向后兼容,并有一個清晰的遷移路線(migration path)

◆ 明晰(Well-defined)的錯誤處理機制,類似CSS(比如,忽略未知內(nèi)容,繼續(xù)執(zhí)行),相比之下XML錯誤處理機制過于“苛刻”。

◆ 編程錯誤不應(yīng)直接暴露給終端用戶。

◆ 實用性:所有最終進入網(wǎng)頁應(yīng)用技術(shù)規(guī)范的性特性都必須實際的應(yīng)用案例支撐。但反之則不成立:即所有類似的應(yīng)用案例并不必然會新特性加入到技術(shù)規(guī)范中。

◆ 腳本支持已經(jīng)已得到公認(但是當有更方便的標簽可滿足需求時,應(yīng)避免使用腳本。)(譯者:類似表單輸入數(shù)據(jù)驗證。)

◆ 避免針對特定設(shè)備的規(guī)范。

◆ 制定過程必須開放。(網(wǎng)絡(luò)本身從開放式發(fā)展中受益頗多。郵件列表,存檔,規(guī)范草稿應(yīng)一直對公眾開放。)

該報告遭W3C的拒絕,因此Opera和Mozilla以及后來的蘋果繼續(xù)維護著一個叫做網(wǎng)絡(luò)超文本應(yīng)用程序技術(shù)工作組(Web Hypertext Application Technology Working Group,簡稱WHATWG)的郵件列表(Mail list),繼續(xù)制定他們用以驗證概念( proof-of-concept)的規(guī)范內(nèi)容。這份規(guī)范對HTML4表單規(guī)范進行了擴充,在伊恩 ·希克森(Ian Hickson)的不斷校訂中,這份規(guī)范最終成為一份名叫網(wǎng)頁應(yīng)用程序1.0(Web Applications 1.0)的規(guī)范。后來伊恩 ·希克森離開Opera,加入Google。

在2006年,W3C終于意識到自己的錯誤,決定重新啟用HTML,向WHATWG所要它的規(guī)范,并將其作為HTML5規(guī)范的基礎(chǔ)

上面這些是史事資料?,F(xiàn)在我們來看看一些流傳甚廣的流言。

流言“在2012(或2022)年之前,俺是用不上HTML5的了。”

這***言是從HTML5進入到W3C流程的候選推薦階段(Candidate Recommendation,簡稱REC)的項目日期所誤傳開來的。官方Wiki上寫道:

如今一個規(guī)范要成為候選推薦標準(REC),它需要具備***的可實施性(interoperable implementations),只有成功通過上萬項的測試案例(Test Case)后才能驗證這點(據(jù)保守估計,整個規(guī)范可能需要進行2萬項測試)。當你在心里默算寫這些測試案例需要多少時間,實施每個新特性又需要多少時間時,你就會明白HTML5規(guī)范制定的時間跨度為什么這么長了。

因此,按此說法,在你能在兩大瀏覽器中用上所有的功能之前,HTML5的規(guī)范是沒有最終定稿的。

當然,真正重要的一小部分HTML5的特性已得到瀏覽器的支持,任何瀏覽器的支持情況匯總表單都會在一周之內(nèi)過時,因為瀏覽器制作廠商的創(chuàng)新速度非常之快。另外,許多HTML5的新特性也通過JavaScript腳本在不支持HTML5的老瀏覽器中得以重現(xiàn)。Canvas屬性在所有新瀏覽器中得到支持,其中包括IE9,另外在老的IE瀏覽器中,通過excanvas庫,我們也可以模擬Canvas的特性。而音頻和視頻標簽效果,我們則可以通過Flash在舊的瀏覽器中實現(xiàn)。

HTML5在設(shè)計上就可以優(yōu)雅降級,因此運用一些JavaScript代碼和創(chuàng)意,HTML5的所有功能都可以在老瀏覽器上實現(xiàn)。

“俺的瀏覽器支持HTML5,你的不支持。”

這***言認定HTML5是一個整體不可分割的標準。但實際上不是。正如前文所說,HTML5是一組新特性的組合。因此,短期來講,你不能說一個瀏覽器支持了HTML5的所有內(nèi)容。而當瀏覽器能做到這點時,瀏覽器本身已經(jīng)無關(guān)緊要了,因為那時我們將被新一代的HTML語言所震撼。

感覺HTML5亂的一塌糊涂,是吧?看看CSS2.1,這么多年了它都是一個尚未最終完成的標準,但是我們每個人無時不在用它。我們用CSS3輕松添加圓角,這點很快就會得到所有瀏覽器的支持,雖然CSS3的其他特性尚未得到所有瀏覽器的支持。

要提防那些瀏覽器“評分”網(wǎng)站。這些網(wǎng)站測試的內(nèi)容經(jīng)常與HTML5無關(guān),比如CSS,SVG,甚至是網(wǎng)頁字體(web fonts)。你手頭需要完成的工作才是要緊的,你客戶受眾瀏覽器所支持的技術(shù)才是用得上的技術(shù)。

HTML5實際上正式認可了一些常見的書寫錯誤(Tag Soup)

HTML5在語法方面要比XHTML松散很多:比如,你可以用純大寫或小寫字母書寫標簽,甚至大小寫混用也無妨。你無需對img這類的標簽做自封閉處理(self-close),因此下面這兩種寫法都是合法的:

1 <img src=”nice.jpg” />

2 <img src=”nice.jpg”>

標簽屬性也無需用雙引號括起來,因此下面這兩種寫法都是合法的:

1 <img src=”nice.jpg”>

2 <img src=nice.jpg>

使用大寫或小寫(甚至混用)字母都可以,所以下面三種寫法也都是合法的:

1 <IMG SRC=nice.jpg>

2 <img src=nice.jpg>

3 <iMg SrC=nice.jpg>

這與HTML4毫無差異,但是如果你用習(xí)慣了XHTML,你碰到這種寫法時還是會很震驚的?,F(xiàn)實中,如果你使用HTML和文本內(nèi)容書寫頁面,而非使用XML(你極有可能是混用文本和HTML書寫頁面的,因為IE8并不能真正的渲染XHTML頁面),那么上述細微差別也無關(guān)緊要:瀏覽器會忽略尾部的斜杠,雙引號,以及大小寫。

HTML5語法看似松散,但實際的解析規(guī)則要嚴格的多。因而HTML5中,常見的書寫錯誤(Tag Soul)將不復(fù)存在;HTML5的規(guī)范對這些無效標記做精確的描述和定義,因此所有遵循規(guī)范的瀏覽器都會生成同樣的文檔對象模型(DOM)。如果你曾寫過JavaScript來遍歷DOM,那么你就會對DOM不一致所帶的恐怖經(jīng)歷有所體會。

但這種修正不應(yīng)導(dǎo)致無效代碼泛濫。HTML5為你創(chuàng)建的DOM可能并不是你想要的那個,因此對書寫的HTML5代碼進行驗證仍然至關(guān)重要。隨著新特性的大量涌入,對細小語法錯誤的忽視會讓你的腳本失效,或是CSS樣式出錯,這也是我們?yōu)槭裁葱枰狧TML5驗證器的原因之所在。

HTML5遠不僅僅只是讓一些常見的書寫錯誤合法化,而且讓這些常見錯誤(Tag soup)成為歷史。贊。

#p#

“我需要把我的網(wǎng)站從XHTML轉(zhuǎn)換HTML5?!?/STRONG>

HTML5對松散語法的包容性時候敲響的了XHTML的喪鐘嗎?制定XHTML2規(guī)范的工作組已經(jīng)解散,對吧。

沒錯,XHTML2的工作組在2009年年末的時候解了。他們起草的這個規(guī)范是用來與HTML5競爭的,但尚未得到執(zhí)行實施,然而,同時保留兩隊人馬是對W3C組織資源的一種浪費。另外XHTML1已經(jīng)是一個業(yè)已完成的規(guī)范,得到所有瀏覽器的廣泛支持,并在必須的時限內(nèi)仍將得到所有瀏覽器的支持。因此你用XHTML書寫的網(wǎng)站也將免受折騰之苦。

HTML5將會干掉XML

根本不會,如果你需要使用XML而是HTML,你可以選用XHTML5,它幾乎包含所有HTML5的優(yōu)點,只是要必須遵循嚴格XHTML語法(比如,要標簽屬性中的雙引號不能省,自封閉元素的末尾斜杠不可勝,必須用小寫字母書寫標簽等等諸如此類。)

現(xiàn)實情況是XHTML5并不完全包含所有HTML5的特性。譬如 <noscript> 就失效了。但你想想,這古董玩意兒還有人在用嗎?

正因為CSS Web字體尚未得到廣泛支持,以Flash為基礎(chǔ)的sIFR技術(shù)將會填補這一空白,F(xiàn)lash也因逆向兼容HTML5視頻內(nèi)容而挽救局面。因為HTML5設(shè)計時“照顧”了老瀏覽器,Video標簽之間的其他標記將會被支持HTML5的瀏覽器所忽視,因此用老式的<object>或<embed> 標簽可以用Flash嵌入所有瀏覽器支持的視頻內(nèi)容,克羅克·卡門( Kroc Camen)在他的《全兼容的視頻》一文中就倡導(dǎo)這種做法。(見下面截圖。)

有關(guān)HTML5的流言與真相

但也并是不所的應(yīng)用場合都是可以用HTML5取代Flash的。比如HTML5中就沒辦法進行數(shù)字版權(quán)的管理。Opera,F(xiàn)irefox和Chrome這類瀏覽器允許簡單的右鍵點幾下就將視頻保存的本地電腦上。如果你不想用戶保存視頻文件,你就需要使用插件。另外捕捉麥克風(fēng)或是攝像頭的信號就只能通過Flash實現(xiàn)。(不過<device> 元素已經(jīng)出現(xiàn)到HTML5以后的規(guī)范中),因此如果你想寫一個可以終結(jié)聊天輪盤(Chatroulette)網(wǎng)站的東西來,那么HTML5并不適合你。

HTML5在可訪問性(Accessibility)方面做得比較差
關(guān)于HTML5的討論中有不少是嘮叨HTML5可訪問性的。這點很好,應(yīng)該歡迎:因為網(wǎng)絡(luò)的基礎(chǔ)語言已經(jīng)做了太多了的改變,因此確保網(wǎng)頁對于那些殘障人士的易訪問性極其重要。另外,更為重要的是在技術(shù)方案的制定過程中就將其考量進入,而非時候修補。畢竟大多數(shù)開發(fā)人員甚至沒為圖片標簽添加Alt屬性,所以提供現(xiàn)成可用的易訪問性(accessibility)相比人們手動添加更為易成功。

這也是為什么HTML5添加了類似滑塊(<input type=range>,目前僅Opera和Wbkit內(nèi)核的瀏覽器支持)原生控件和日期選定控件(<input type=date>,僅Opera支持)——因為之前,我們只能用JavaScript和圖片來模擬,并添加鍵盤支持和WAI-ARIA的Role屬性。

而Canvas標簽則又是另一番情況,該標簽原本是蘋果***的,后遭其他瀏覽器廠商的逆向工程破解,繼而被吸納為HTML5規(guī)范的一部分,因此Canvas技術(shù)本身在可訪問性方面并未做考量。如果你只是用它制作一些視覺美化,那問題不大,你大可把它看成圖片,,只是不能添加ALt屬性來指定替換的文本內(nèi)容(已有人建議在規(guī)范中作此增添,但目前尚未得到實施)。因此,確保Canvas著中的信息在頁面的其他地方有替代信息,從而增強頁面的可訪問性。

Canvas中的文本變成了像素,如圖片中的文本。因此,輔助技術(shù)和屏幕閱讀器來可以讀出其中的信息??煽紤]用W3C的可縮放適量圖像標準(SVG)替代,尤其對于動態(tài)圖像和文本內(nèi)容來說。SVG目前得到了主流瀏覽器的支持,其中包括IE9(IE8以及一下的瀏覽器不支持,不過SVGWeb庫通過Flash技術(shù)可以在老式瀏覽器中模仿SVG。)

<video> 和 <audio>標簽也很有前途。盡管這兩個標簽的規(guī)范尚未完全確定(而且許多瀏覽器還不支持)。HTML5已經(jīng)添加了一個新的<track> 的標簽,可以包含帶時間軸的文本(歌詞和外文媒體的字幕),你可以之間在視頻下面用JavaScript來添加時間軸字幕,并與視頻內(nèi)容同步。

“當我***次用HTML5的時候,HTML5的大師會助我一臂之力”
如果是真的那該多好。不過保羅·艾瑞士(Paul Irish)和迪維亞·梅麗亞( Divya Manian)打造的HTML5模板文件對你來說就足以很好。模板文件包含一系列的文件,你可以做模板用在你的項目中。模板文件包含了你所必須的JavaScript,方便在IE中添加新元素;它從Google的CDN上引用jQuery,另外如果Google服務(wù)器出問題了,還可降級引用你自己服務(wù)器上的JS庫。

有關(guān)HTML5的流言與真相

它也添加了適用iOS,Android和Opera手機版的標簽,并用一個易于理解的CSS reset文件搭建了一個基本的CSS骨架。它甚至還一個.htaccess文件,以便為HTML5視頻提供正確的MIME類型。如果你不需要全部的內(nèi)容,你可刪除對你項目無用的內(nèi)容,精簡文件。

原文鏈接:http://www.alibuybuy.com/posts/61022.html

【編輯推薦】

  1. ***HTML 5與Flash性能比較報告出爐:大跌你的眼球
  2. HTML 5來襲:Web前端開發(fā)面臨十字路口
  3. HTML 5可以做五件事情 超出你的想象
  4. 萬維網(wǎng)創(chuàng)立者:HTML 5為未來網(wǎng)絡(luò)技術(shù)埋下隱患
  5. IBM發(fā)布開源HTML 5可視化設(shè)計工具Maqetta
責(zé)任編輯:陳貽新 來源: 互聯(lián)網(wǎng)的那點事
相關(guān)推薦

2009-02-09 09:53:50

2009-07-06 16:19:00

HTML 5Ogg

2009-10-26 15:18:39

HTML 5

2015-10-08 10:15:12

2015-04-30 11:26:38

HTML5與APP的抉

2019-05-07 14:21:36

Linux隨機數(shù)生成器

2015-04-16 14:03:40

2010-02-03 10:36:00

HTML 5Flash視頻

2013-09-09 09:57:04

大數(shù)據(jù)NoSQL數(shù)據(jù)庫

2011-08-30 09:07:30

HTML 5

2019-01-18 08:00:00

2019-06-21 09:29:42

5G壟斷限速

2009-07-03 09:41:27

HTML 5

2009-06-22 09:50:25

HTML 5OggWeb視頻

2011-07-14 09:16:10

HTML 5

2011-12-26 09:48:11

HTML 5

2019-03-18 16:29:01

分布式系統(tǒng)Redis

2019-11-22 16:05:44

阿里巴巴技術(shù)開源

2009-12-25 17:11:40

ADO方法

2019-03-15 16:07:03

5G汽車
點贊
收藏

51CTO技術(shù)棧公眾號