偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

通過(guò)WHATWG看HTML 5的未來(lái)

開(kāi)發(fā) 前端
實(shí)現(xiàn)使用 HTML 再加上 JavaScript 技術(shù)或者 Flash。其中多數(shù)可能已經(jīng)認(rèn)識(shí)到 “重新發(fā)明輪子” 是毫無(wú)意義的,開(kāi)始考慮使 WHATWG 規(guī)范標(biāo)準(zhǔn)化,比方說(shuō)其正式實(shí)現(xiàn)。

HTML 不是一種很好的制作網(wǎng)頁(yè)的語(yǔ)言。但卻是形成 Web 的一種很好的語(yǔ)言。

HTML 易學(xué)易用,再加上瀏覽器的查看源代碼功能,引發(fā)了Web 令人瞠目結(jié)舌的迅速普及。萬(wàn)維網(wǎng)聯(lián)盟(W3C)對(duì) HTML 標(biāo)準(zhǔn)化的參與,保證了所有的 Web 瀏覽器都或多或少地實(shí)現(xiàn)了同樣的方言。CSS 的出現(xiàn),作為最佳實(shí)踐的基于標(biāo)準(zhǔn)的 Web 設(shè)計(jì)的普及也改變了 HTML 的混亂狀態(tài),同時(shí)為用戶(hù)和開(kāi)發(fā)人員帶來(lái)了更好的 Web 體驗(yàn)。

您可能已經(jīng)了解這些。結(jié)果是 Web 可能已經(jīng)對(duì)您的生活或生意帶來(lái)正面的影響。但事實(shí)仍然是 HTML 并不是一種很好的語(yǔ)言。比方說(shuō),為什么 HTML 要設(shè)置 H1 到 H6 這些標(biāo)題?誰(shuí)會(huì)使用包含六層的標(biāo)題結(jié)構(gòu)?為什么在這個(gè) 3D 圖形加速卡和復(fù)雜用戶(hù)界面的時(shí)代,Web 頁(yè)面卻要讓用戶(hù)用笨拙的文本框和單選按鈕來(lái)輸入?

因此毫不奇怪,各種不同的組織再次迫切地要求改進(jìn) HTML,使 Web 發(fā)布和 Web 應(yīng)用程序使用現(xiàn)代用戶(hù)界面提供的更多技術(shù)。這些人有誰(shuí)呢?粗略地說(shuō)可分為三類(lèi)。首先是利用現(xiàn)有技術(shù)進(jìn)行改造的那些人。這就是 Asynchronous JavaScript and XML (Ajax) 所宣揚(yáng)的:使用 JavaScript 和瀏覽器 XMLHttpRequest 對(duì)象建立動(dòng)態(tài)的用戶(hù)界面。取得的效果是驚人的,但這不是進(jìn)步的標(biāo)準(zhǔn)方式。

另外兩類(lèi)人關(guān)注未來(lái)的改進(jìn)。W3C 根據(jù)各種供應(yīng)商(不僅僅是桌面瀏覽器制造者)的需要,提出了 XHTML 2.0。XHTML 2.0 被看作是革命性的一步。相反,Web Hypertext Application Technology Working Group (WHATWG) 則提出了一套遞增式的規(guī)范,改進(jìn) HTML 從而為瀏覽器增加了最迫切需要的功能。一些 WHATWG 特性已經(jīng)在 Apple 的 Safari 瀏覽器和 Mozilla Firefox 1.5 中實(shí)現(xiàn)了。

這兩期文章將討論 W3C 和 WHATWG 的工作。Ajax 已經(jīng)在 developerWorks 的其他文章(請(qǐng)參閱 參考資料)中討論過(guò)了。雖然還沒(méi)有引起最初 HTML 引入 W3C 時(shí)所爆發(fā)的大規(guī)模的標(biāo)準(zhǔn)之爭(zhēng),但這兩個(gè)組織對(duì) HTML 走向何方并非總是一致的。我將解釋和評(píng)論這兩種方法。

WHATWG、HTML 5 和 Web Forms 2.0

就像其網(wǎng)頁(yè)上所宣稱(chēng)的那樣,WHATWG 是 “Web 瀏覽器生產(chǎn)廠商和一些相關(guān)團(tuán)體形成的一個(gè)松散的、非正式的協(xié)作組織,這些團(tuán)體希望發(fā)展一些新的技術(shù),從而開(kāi)發(fā)人員可以在互聯(lián)網(wǎng)上編寫(xiě)并部署應(yīng)用。這里有兩點(diǎn)特別值得關(guān)注:WHATWG 的主要參與者是瀏覽器(Mozilla、Opera)制造商,他們改進(jìn)的目標(biāo)是創(chuàng)建 Web 應(yīng)用程序

WHATWG 的標(biāo)志性規(guī)范的代號(hào)是 HTML5,但更為人所知的名稱(chēng)是 Web Applications 1.0。HTML5 的目標(biāo)是保持和當(dāng)前 HTML 標(biāo)準(zhǔn) HTML 4.01 以及 HTML 的 XML 版本 XHTML 1.0 向后兼容。該規(guī)范繼續(xù)了 W3C HTML 所致力的 HTML 和 XHTML 的融合,雖然它提出實(shí)現(xiàn)的方法可能不同。

除了 HTML5,Web Forms 2.0 規(guī)范,也尋求解決開(kāi)發(fā)人員對(duì)當(dāng)前 HTML 表單的不滿(mǎn)之處。目前的表單省略了普通桌面應(yīng)用程序的很多基本特性,比如驗(yàn)證和更豐富的小部件。

那么HTML5 中有什么呢?一句話(huà),很多。Web Applications 1.0 規(guī)范仍然在演化之中,提到的有些特性比另一些開(kāi)發(fā)得更完善。下面是對(duì)這些新特性的簡(jiǎn)要說(shuō)明:

1.新的布局元素,包括日歷控件、地址卡、靈活的數(shù)據(jù)網(wǎng)格、標(biāo)尺和進(jìn)度條、拖放、菜單

2.對(duì)文檔對(duì)象模型(DOM)的編程擴(kuò)展,包括服務(wù)器發(fā)送的 DOM 事件

3.事實(shí)標(biāo)準(zhǔn) XMLHttpRequest 對(duì)象的正式化,它是 Ajax 通信的核心

4.基于 canvas 元素的動(dòng)態(tài)位圖圖像

可以看到其中很多源自目前 Web 上用 JavaScript 一次性實(shí)現(xiàn)的特性。事實(shí)上,最近 Ajax 工具箱的流行已經(jīng)引起了標(biāo)尺、日歷等控件的泛濫。

畫(huà)布

HTML5 特性(即 Web 瀏覽器的一部分)的傳統(tǒng)實(shí)現(xiàn)目前還僅限于上述少數(shù)技術(shù)。其中最知名的是 canvas 元素。Firefox 1.5 和 Apple 的 Safari 瀏覽器也實(shí)現(xiàn)了 canvas。

雖然 W3C 的 Scalable Vector Graphics (SVG) 語(yǔ)言已經(jīng)提供了在瀏覽器中顯示圖形的一種方式,但 canvas 采用了不同的方法。不是像 SVG 那樣實(shí)現(xiàn)一種聲明性文檔,它提供了一個(gè)空白面供 JavaScript 在上面繪圖。這種命令式的繪圖模型更類(lèi)似于 OpenGL 風(fēng)格的繪制,而不是聲明性的 Web。

圖1顯示了一個(gè)簡(jiǎn)單的 canvas 示例的截屏圖。當(dāng)用戶(hù)把鼠標(biāo)移到該圖形上時(shí),圖形慢慢地放大。這個(gè)例子表明,實(shí)現(xiàn)用戶(hù)界面需要的所有成分 ——繪制、用戶(hù)輸入事件和定時(shí)器 —— 都已經(jīng)就位。

圖 1. 交互式畫(huà)布示例的截屏
交互式畫(huà)布示例的截屏
 

通過(guò)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 3D 迷宮,canvas 應(yīng)用程序已經(jīng)離最明顯的目標(biāo)(游戲?。┲挥幸徊街b了,如圖2所示。

圖 2. 簡(jiǎn)單的迷宮游戲
簡(jiǎn)單的迷宮游戲
 

為了了解如何對(duì) canvas 編程,請(qǐng)看一些簡(jiǎn)單的代碼。清單1 顯示了一個(gè)很容易理解的例子,它的結(jié)果如圖3所示。

清單 1. 簡(jiǎn)單的 canvas 例子

  1. <html> 
  2.   <head> 
  3.     <title>Canvas demo</title> 
  4.     <script type="text/javascript"> 
  5.       function draw () {  
  6.         var canvas = document.getElementById ('hello');  
  7.         if (canvas.getContext) {  
  8.           var ctx = canvas.getContext('2d');  
  9.           ctx.fillRect (25, 25, 50, 50);  
  10.         }  
  11.       }  
  12.     </script> 
  13.     <style type="text/css"> 
  14.       canvas { border: 2px solid red; }  
  15.     </style> 
  16.   </head> 
  17.   <body onload="draw ();"> 
  18.     <canvas id="hello" width="100" height="100"></canvas> 
  19.   </body> 
  20. </html> 

圖 3. 清單 1 的結(jié)果
清單 1 的結(jié)果
 

因?yàn)?canvas 沒(méi)有提供任何聲明性語(yǔ)義,很可能更多地用于用戶(hù)界面實(shí)現(xiàn)領(lǐng)域而不是其他方面。canvas 令人感興趣的一點(diǎn)是作為新的瀏覽器界面元素和特性的原型基礎(chǔ)。最好的例子是 Antoine Quint 使用 canvas 部分實(shí)現(xiàn)了 SVG。使用 Quint 的方法,要呈現(xiàn)內(nèi)嵌 SVG 的 HTML 文件,可以增加兩行代碼導(dǎo)入其 JavaScript SVG 呈現(xiàn)引擎。圖4 顯示了使用該方法呈現(xiàn)的類(lèi)似的老虎圖像。

圖 4. 使用 JavaScript 和 canvas 元素呈現(xiàn)的 SVG 老虎圖像
使用 JavaScript 和 canvas 元素呈現(xiàn)的 SVG 老虎圖像
 

時(shí)間將證明 canvas 是否會(huì)成為主流的 Web 設(shè)置。它的功能和 Java applet 有些類(lèi)似,但是其 JavaScript 接口更容易使用,也更容易與其他瀏覽器元素交互。

Web Forms 2.0

WHATWG 表單規(guī)范的版本號(hào)表明它的目標(biāo)是以 HTML4 中的表單規(guī)范為基礎(chǔ)。與 Web Applications (HTML5) 規(guī)范不同,這是個(gè)成熟的規(guī)范。Web Forms 2.0 的范圍也更狹窄,僅僅著眼于改進(jìn)瀏覽器中提供的表單控件。

這次對(duì)表單的修訂增加了什么呢?其中包括:

1.驗(yàn)證結(jié)構(gòu)允許瀏覽器在提交表單前做更多的檢查。新的屬性,包括 required、minmax。

2.驗(yàn)證的 DOM 支持,為表單元素增加了 validity 屬性和新的 invalid 事件。

3.對(duì)表單元素自動(dòng)完成的控制,允許文檔作者指明是否讓瀏覽器記住字段值并自動(dòng)填充。預(yù)定義的值可通過(guò) list 屬性傳遞。

4.autofocus 屬性指定加載文檔時(shí)哪一個(gè)表單元素?fù)碛休斎虢裹c(diǎn)。

5.inputmode 屬性允許對(duì)存放文本的表單元素提示適當(dāng)?shù)恼Z(yǔ)言輸入模式。

6.文件上傳控制的改進(jìn),可以指定文件類(lèi)型,限制文件大小。

7.模板化表單元素的循環(huán)。

8.新的輸入控件包括:datetimenumber、range、emailurl。增加了限制輸入值的模式(pattern)。

Web Forms 規(guī)范比 HTML5 更加一致,已經(jīng)出現(xiàn)了一些實(shí)現(xiàn):Opera 9 的 beta 版包括 Web Forms 2.0 支持;開(kāi)放源碼 Web Forms 項(xiàng)目為 Internet Explorer 提供了 DHTML+Behaviors 實(shí)現(xiàn) 。

W3C 為下一代表單提供的答案是 XForms。XForms 和 Web Forms 2.0 不同,根據(jù)傳遞的 XML 文檔開(kāi)發(fā)了一種新的瀏覽器-服務(wù)器交互模型。相反,Web Forms 2.0 是對(duì)現(xiàn)有表單模型的改良,目的是使現(xiàn)在的瀏覽器表單更好用。這兩種規(guī)范針對(duì)不同的需求,雖然存在明顯的共同之處。正如 Web Forms 規(guī)范所指出的:

本規(guī)范嘗試增加 XForms 的一些功能,并盡量減少對(duì)現(xiàn)有的、被廣泛實(shí)現(xiàn)的表單模型的影響。如果需要,向后兼容、易于編輯、易于實(shí)現(xiàn)要優(yōu)先于理論的純粹性。

其他實(shí)現(xiàn)

canvas 是瀏覽器實(shí)現(xiàn)的主要 WHATWG 特性。HTML5 的其他部分仍然處在初級(jí)階段,可能永遠(yuǎn)不會(huì)完全實(shí)現(xiàn)。

但是,Web Applications 和 Web Forms 規(guī)范可能顯示出最初沒(méi)有預(yù)料到的重要性。近幾個(gè)月中,出現(xiàn)了一些功能全面的項(xiàng)目,用于為 Web 應(yīng)用程序開(kāi)發(fā)用戶(hù)界面工具箱。這些實(shí)現(xiàn)使用 HTML 再加上 JavaScript 技術(shù)或者 Flash。其中多數(shù)可能已經(jīng)認(rèn)識(shí)到 “重新發(fā)明輪子” 是毫無(wú)意義的,開(kāi)始考慮使 WHATWG 規(guī)范標(biāo)準(zhǔn)化,比方說(shuō)其正式實(shí)現(xiàn)。

結(jié)束語(yǔ)

由于明顯的需求和規(guī)范的完整性,Web Forms 2.0 規(guī)范很可能被實(shí)現(xiàn)并最終成為認(rèn)可的標(biāo)準(zhǔn)。事實(shí)上 Web Forms 2.0 已經(jīng)提交給 W3C 請(qǐng)求評(píng)論,就像是 WHATWG 合作者的資產(chǎn)負(fù)債表和構(gòu)造塊。

但是,僅僅根據(jù) WHATWG 規(guī)范很難描繪 HTML 的未來(lái)。一些部分僅僅描述了當(dāng)前的創(chuàng)新,如 XMLHttpRequestcanvas,其他部分似乎還很模糊,沒(méi)有引起實(shí)現(xiàn)者的興趣。此外,HTML5 的主要?jiǎng)訖C(jī)是桌面的、以應(yīng)用程序?yàn)橹行牡膽?yīng)用。非 PC 設(shè)備上還沒(méi)有大量使用 HTML,這也是需要發(fā)展的一個(gè)方向。

隨著基于 Ajax 的瀏覽器界面工具箱的興起,HTML5 中某些更深刻的想法可能已經(jīng)過(guò)時(shí)了。既然有可擴(kuò)展的工具箱使用,開(kāi)發(fā)人員何必在文檔中使用有限的一組控件呢?更豐富的 Web 界面更有可能通過(guò)市場(chǎng)而不是委員會(huì)而實(shí)現(xiàn)標(biāo)準(zhǔn)化。

我高興地看到已經(jīng)通常實(shí)現(xiàn)但還沒(méi)有標(biāo)準(zhǔn)化的技術(shù)如 canvasXMLHttpRequest 的進(jìn)展,希望能夠改進(jìn)這些重要特性的互操作性。要使瀏覽器技術(shù)沿著自己的方向發(fā)展,HTML5 必須更加清晰,最好分為三個(gè)規(guī)范,分別描述目前、近期 和設(shè)想 的特性。

 

責(zé)任編輯:張偉 來(lái)源: developerWorks 中國(guó)
相關(guān)推薦

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來(lái)

2012-06-25 14:57:27

HTML5

2016-05-13 17:14:51

華為HTML5

2015-09-16 17:17:58

2011-07-08 13:51:16

HTML 5

2012-08-23 10:42:49

HTML5

2013-01-22 13:02:41

HTML5canvasWeb

2013-04-11 10:52:49

IDF2013費(fèi)道明HTML5

2010-12-03 09:18:44

2011-06-15 15:48:52

HTML 5

2009-06-22 09:50:25

HTML 5OggWeb視頻

2009-07-03 09:41:27

HTML 5

2011-03-23 09:33:51

HTML 5

2011-11-16 09:00:39

編程語(yǔ)言

2019-12-17 14:39:43

5G手機(jī)廠商消費(fèi)

2015-11-04 09:58:15

H5開(kāi)發(fā)未來(lái)

2012-05-28 10:01:19

2015-04-23 09:16:50

SDNNFV網(wǎng)絡(luò)虛擬化

2010-07-28 08:41:17

HTML5Web移動(dòng)應(yīng)

2011-11-10 09:38:11

HTML 5
點(diǎn)贊
收藏

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