認(rèn)識(shí)html5新特性成為一個(gè)合格的web前端開發(fā)工程師! html5草案的前身名為Web Applications 1.0,是在2004年由WHATWG提出,再于2007年獲W3C接納,并成立了新的html工作團(tuán)隊(duì)。在2008年1月22日,第一份正式草案發(fā)布。 WHATWG表示該規(guī)范是目前仍在進(jìn)行的工作,仍須多年的努力。目前Firefox、Google Chrome、Opera、Safari(版本4以上)、Internet Explorer 9已支援html5技術(shù)。
1、讓W(xué)eb再次回歸到客戶端地步,而且更加的獨(dú)立,減少了對(duì)第三方插件的依賴。
比如:之前的html4的標(biāo)準(zhǔn)中并沒有對(duì)于視頻、音頻以及其他的富客戶端技術(shù)支持的非常好,這就使得Flash和SilverLight變得異 常的成功。而在html5新標(biāo)準(zhǔn)中原生的就支持音頻、視頻、畫布等技術(shù)。讓我們的WEB程序擁有更多富客戶端表現(xiàn)的方式,而且讓我們的WEB程序更加獨(dú) 立,更好的適應(yīng)多種形式的客戶端。
2、對(duì)本地離線存儲(chǔ)的更好的支持
由于之前想在客戶端保存一些數(shù)據(jù)都是由 cookie 完成的。但是 cookie 不適合大量數(shù)據(jù)的存儲(chǔ),因?yàn)樗鼈冇擅總€(gè)對(duì)服務(wù)器的請(qǐng)求來傳遞,這使得 cookie 速度很慢而且效率也不高。
html5提供了兩種在客戶端存儲(chǔ)數(shù)據(jù)的新方法:
localStorage - 沒有時(shí)間限制的數(shù)據(jù)存儲(chǔ)
sessionStorage - 針對(duì)一個(gè) session 的數(shù)據(jù)存儲(chǔ)
在 html5中,數(shù)據(jù)不是由每個(gè)服務(wù)器請(qǐng)求傳遞的,而是只有在請(qǐng)求時(shí)使用數(shù)據(jù)。它使在不影響網(wǎng)站性能的情況下存儲(chǔ)大量數(shù)據(jù)成為可能。
對(duì)于不同的網(wǎng)站,數(shù)據(jù)存儲(chǔ)于不同的區(qū)域,并且一個(gè)網(wǎng)站只能訪問其自身的數(shù)據(jù)。
html5使用 Java 來存儲(chǔ)和訪問數(shù)據(jù)。有了本地?cái)?shù)據(jù)庫(kù)的支持,讓一些簡(jiǎn)單的離線應(yīng)用也成為了可能。
3、新的特殊內(nèi)容元素,更好的支持SEO以及方便視障人士使用
現(xiàn)在所有的站點(diǎn)基本上都是Div+CSS布局,幾乎所有的文章標(biāo)題、內(nèi)容、輔助介紹等都用Div容器來承載。搜索引擎在抓取頁(yè)面內(nèi)容時(shí),因?yàn)闆] 有明確的容器的含義只能去猜測(cè)這些標(biāo)簽容器承載的是文章標(biāo)題還是文章內(nèi)容等,html5新標(biāo)準(zhǔn)中直接添加了擁有具體含義的html標(biāo)簽比 如:article、footer、header、nav、section
4、更加智能的表單標(biāo)簽
之前的表單標(biāo)簽,僅僅是簡(jiǎn)單的類型的約束,比如文本框、文本域、下拉列表等,而跟業(yè)務(wù)結(jié)合緊密的表單標(biāo)簽數(shù)據(jù)校驗(yàn)等控制都沒有很好的支持,而是 用這些技術(shù)都基本上都是跟第三方的JS控件進(jìn)行結(jié)合使用,但是這些第三方總會(huì)涉及到版本控制、瀏覽器兼容性、非標(biāo)準(zhǔn)等一系列的問題,而在html5的標(biāo)準(zhǔn) 中直接添加了智能表單,讓這一切都變得那么的簡(jiǎn)單,比如 calendar、date、time、email、url、search。
5、html5即時(shí)二維繪圖 ,也就是畫布的引入,讓Java子彈飛
畫布的引入使得:Web端生成動(dòng)畫效果、制作Web游戲、更好的交互體驗(yàn)設(shè)計(jì)都增加了無限的變數(shù),當(dāng)社區(qū)充斥著亂七八糟超炫的html5的JS 控制的效果的時(shí)候,讓人無限的贊嘆。html5的canvas 元素使用Java 在網(wǎng)頁(yè)上繪制圖像。畫布是一個(gè)矩形區(qū)域,您可以控制其每一像素。
canvas 擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。
6、JS嗑藥了,支持多線程
在不影響UI update 及 瀏覽器與用戶交互的情況下, 前端做大規(guī)模運(yùn)算,只能通過 setTimeout 之類的去模擬多線程 。而新的標(biāo)準(zhǔn)中,JS新增的HTML5 Web Worker對(duì)象原生的就支持多線程。
7、WebSockets讓跨域請(qǐng)求、長(zhǎng)連接、數(shù)據(jù)推送等一切都變得那么簡(jiǎn)單,Web不僅僅是Ajax
WebSockets是在一個(gè)(TCP)接口進(jìn)行雙向通信的技術(shù),PUSH技術(shù)類型。WebSocket是html5規(guī)范新引入的功能,用于解 決瀏覽器與后臺(tái)服務(wù)器雙向通訊的問題,使用WebSocket技術(shù),后臺(tái)可以隨時(shí)向前端推送消息,以保證前后臺(tái)狀態(tài)統(tǒng)一,在傳統(tǒng)的無狀態(tài)HTTP協(xié)議中, 這是“無法做到”的。
8、更好的異常處理
html5 (text/html)瀏覽器將在錯(cuò)誤語法的處理上更加靈活。html5在設(shè)計(jì)時(shí)保證舊的瀏覽器能夠安全地忽略掉新的html5代碼。與HTML4.01相比,html5給出了解析的完整規(guī)則,讓不同的瀏覽器即使在發(fā)生語法錯(cuò)誤時(shí)也能返回完全相同的結(jié)果。
9、文件API讓文件上傳和操縱文件變得那么簡(jiǎn)單
由于項(xiàng)目中經(jīng)常遇到用Web應(yīng)用中控制操作本地文件,而之前都是使用一些富客戶端技術(shù)比如flash,ActiveX,Silverlight 等技術(shù),面對(duì)文件JS就是個(gè)shit,就是個(gè)雞肋。在html5的新的提供的FHTML5 File API 讓JS可以輕松上陣了。
10、編輯、拖放、微數(shù)據(jù)、瀏覽歷史管理、地理信息接口API、設(shè)備硬件操作API等很多的新功....
html5的未來?
當(dāng)然html5不是孤立的,Java API的增強(qiáng),讓JS變成異常強(qiáng)大的未來的編程武器。CSS3帶給未來Web應(yīng)用也是極大的新的挑戰(zhàn)。相信由于html5標(biāo)準(zhǔn)化的支持,相信未來Web技 術(shù)真正的可以跑在任何的端,也讓我們的Web應(yīng)用更加的獨(dú)立,更加的輕松的融入到各個(gè)端中,html5就是未來!
總結(jié):
通過上面html5的新特點(diǎn),不難總結(jié)出html5=Java+HTML+CSS。html5的新特性帶給開發(fā)者的是更友好更豐富的本地處理的API,更智能的更優(yōu)雅的html標(biāo)簽,更強(qiáng)的本地處理的功能,通信也進(jìn)一步加強(qiáng)。
Google很早之前就意識(shí)到了,客戶只要擁有一個(gè)瀏覽器就可以了,相信不久的將來現(xiàn)在的Web的應(yīng)用不在對(duì)本地處理那么雞肋,CS形式的客戶端相信也會(huì)越來越少。