我一直都有一個(gè)很大的缺點(diǎn):我喜歡新技術(shù),但是如果不是工作需要或者有項(xiàng)目需要,我很難將其深入,即便我認(rèn)為我很喜歡這門(mén)技術(shù),三分鐘的熱情很快就消失殆盡。這其中包含android和html5的學(xué)習(xí),雖然我依舊很喜愛(ài)它們,但是就是無(wú)法深入,我一直都沒(méi)有意識(shí)到這個(gè)問(wèn)題的重要性。直到... 我的簡(jiǎn)歷上有寫(xiě)了解html5,每次面試幾乎都有人會(huì)問(wèn)到html5的相關(guān)知識(shí),稍微問(wèn)的多一點(diǎn)我就很吃力了。一次又一次的打擊,我覺(jué)得我有必要改變一下我的這個(gè)學(xué)習(xí)習(xí)慣了,一切貴在堅(jiān)持,我需要重新好好學(xué)習(xí)一下html5并堅(jiān)持下去!好了,不吐槽了。進(jìn)入正題。
html5到底有什么用?它與html4有什么區(qū)別?它帶給了我們什么好處?
之前我的回答可能是:
1. 更炫的頁(yè)面展示
2. 更多的語(yǔ)義化標(biāo)簽,方便以后機(jī)器人的搜索啊只能分析什么的
3. 強(qiáng)大的本地存儲(chǔ),構(gòu)建豐富的本地化應(yīng)用
我的回答到底對(duì)不對(duì)呢,難道html5就只有這些亮點(diǎn)嗎?恩,我需要通過(guò)網(wǎng)絡(luò)在進(jìn)行一個(gè)初步的學(xué)習(xí),讓我看到html5的美,html5的強(qiáng)大。
與html4對(duì)比,html5主要提供了一些新的并且十分有趣的特性:
新的語(yǔ)義化標(biāo)簽如header footer article section nav 等等
更完善的增強(qiáng)型表單控件如date email url等
用于繪畫(huà)的canvas元素
用于多媒體播放的video和audio元素
更強(qiáng)大的本地離線(xiàn)存儲(chǔ)
增強(qiáng)的網(wǎng)絡(luò)通信,在服務(wù)器與本地應(yīng)用之間建立持續(xù)連接的WebSocket接口
運(yùn)行后臺(tái)進(jìn)程的Web Worker
地理位置定位功能
......
我列出來(lái)的雖然不多,但從我的理解我覺(jué)得這已經(jīng)很強(qiáng)大了,下面我逐個(gè)分析
語(yǔ)義化標(biāo)簽:對(duì)用戶(hù)來(lái)講,通過(guò)與css3的結(jié)合,在可用性和用戶(hù)體驗(yàn)上得到較大的提升;對(duì)于開(kāi)發(fā)人員來(lái)講,新增的這些標(biāo)簽增強(qiáng)了對(duì)標(biāo)簽語(yǔ)義的描述,可以讓開(kāi)發(fā)人員更簡(jiǎn)單高效的頁(yè)面,也方便維護(hù);對(duì)于網(wǎng)站主來(lái)講,當(dāng)涉及到網(wǎng)站的抓取和索引的時(shí)候,對(duì)于SEO很友好。
增強(qiáng)型控件:采用內(nèi)置的方式,減少了依賴(lài)java代碼的必要性
canvas: 這個(gè)不用說(shuō)了,js游戲開(kāi)發(fā)人員笑的合不攏嘴。
多媒體元素:呃,這個(gè)強(qiáng)大了。現(xiàn)在,大多數(shù)的視頻播放都是通過(guò)flash插件來(lái)顯示的,html5只需要很簡(jiǎn)單的方式就可以實(shí)現(xiàn)視頻的播放,還不用任何插件。特別是現(xiàn)在愛(ài)瘋愛(ài)怕的的流行,移動(dòng)終端不支持flash,html5視頻的優(yōu)勢(shì)就體現(xiàn)出來(lái)了,各大視頻網(wǎng)站都競(jìng)相退出了自己的html5視頻,例如騰訊視頻,新浪視頻,搜狐視頻的ipad專(zhuān)區(qū)。對(duì)于用戶(hù)來(lái)說(shuō),不需要安裝插件就可以看視頻,更方便快捷;對(duì)于開(kāi)發(fā)者來(lái)說(shuō),開(kāi)發(fā)更加簡(jiǎn)單,以前各大公司可能都需要開(kāi)發(fā)自己的flash播放器,現(xiàn)在利用html5可以很方便設(shè)計(jì)自己的播放器。
本地存儲(chǔ): 更強(qiáng)大的本地存儲(chǔ),讓我們開(kāi)發(fā)web本地應(yīng)用成為一種可能。隨著現(xiàn)在智能手持終端設(shè)備的大火,更是給了html5本地存儲(chǔ)一個(gè)大大的發(fā)揮空間。
WebSocket : WebSocket讓我們?cè)?jīng)極為頭疼的服務(wù)器推技術(shù)變得簡(jiǎn)單。因?yàn)樗?wù)器端和客戶(hù)端可以指定的任意時(shí)刻內(nèi)相互推送消息,并且允許跨域通信。
Web Worker:提供一個(gè)java多線(xiàn)程解決方案。
地理位置定位:Geolocation API,可以在移動(dòng)云服務(wù)中使用智能手機(jī)定位功能。
說(shuō)了這么多的優(yōu)點(diǎn),但其實(shí)html5也有很多缺點(diǎn),比如運(yùn)行效率,性能這一塊(相對(duì)native應(yīng)用),而且還有現(xiàn)在并沒(méi)有什么瀏覽器可以完全支持html5的所有功能,仍然存在許多的不兼容不支持的問(wèn)題,但是這有什么大不了的呢。。我就是愛(ài)它嘛!我相信html5會(huì)讓web變得更美好,雖然那一天還沒(méi)到來(lái)。