前言:
HTML5并不是舊標記語言的新版本—甚至也不是對已“過時”技術的改進,而是移動設備、云計算和網絡時代的一種網站和應用程序開發新概念。
很久之前,使用簡單版本的HTML,就可以創建基本網頁結構、組織內容和共享信息。最初,這種語言和Web主要是用于實現基于文本的通信方式。
由于HTML的使用范圍有限,因此許多企業都開發了新的語言和軟件,以便在Web中添加新的特性。這些最初的開發逐漸成為強大和流行的插件。簡單游戲和動畫效果很快轉變成復雜的應用程序,給人們帶來全新的體驗,并從此改變了Web的概念。
在所有插件中,Java和Flash是最成功的。它們應用廣泛,并且被認為是互聯網的未來。但是,隨著用戶的增長,而且互聯網從最初的計算機愛好者之間的互聯工具轉變為以商業和社交互動為主的場所,這兩種技術的局限性最終使它們越來越不受歡迎。
Java和Flash最主要的問題在于缺乏集成性。兩者從一開始便以插件形式出現,有時候還需要插入文檔結構中,但是實際上只是與該結構共享屏幕的一部分空間。在應用程序和文檔之間不存在通信能力和集成性。
缺乏集成性的問題越來越嚴重,也為語言的演變做好了準備,使之共享HTML文檔的空間,成為不受插件限制影響的組件。JavaScript是嵌入在瀏覽器中的一種解釋性語言,同時也是一種改善用戶體驗和實現Web功能的方法。然而,在過去幾年里,由于推廣及濫用問題,市場并沒有完全接受這種語言,而且其流行性也有逐漸下降。
批評者有著很好的理由反對這種語言。在那段時間里,JavaScript無法替代Flash和Java的功能。甚至,有一個很明顯的現實情況是,Java和Flash限制了Web應用程序的范圍,并且隔離了Web內容,而一些流行特性(如流式視頻)正成為Web的重要組成部分,并且只有通過這些技術才能有效地實現。
盡管取得了很大的成功,但是Java也存在一些缺陷。這種語言具有非常復雜的特性,發展緩慢,缺乏集成性,這些問題都直接限制Java在目前主流Web應用程序中的應用。如果不使用Java,人們只能使用Flash。然而,Flash實際上與其競爭對手具有相同的Web特征,因此注定會退出市場。
同時,訪問Web的軟件在不斷發展。除了增加新特性和提高互聯網訪問速度,瀏覽器還不斷改進其JavaScript引擎。增強的功能帶來了更多的機會,而這種腳本語言也已經做好了準備。
從某種程度上講,那些不使用Java或者Flash的開發人員在這個過程中可以為越來越多的用戶提供創建應用程序所需要的工具。這些開發人員開始在他們的應用程序中以全新的方式編寫JavaScript代碼。這種創新及其令人吃驚的結果引起了越來越多程序員的注意。很快,所謂的“Web 2.0”開始出現,開發者社區對于JavaScript的認識也發生了根本性改變。
顯然,JavaScript是一種允許開發者在網頁上創新和實現特殊效果的語言。近幾年來,全世界的程序員和網頁設計人員使用了很多方法,希望克服這種技術的局限性及一直存在的可移植性問題。JavaScript、HTML和CSS顯然是引領Web變革的最佳組合。
事實上,HTML5正是對這個組合的改進,是將整合這一切的黏合劑。HTML5標準涉及Web的各個方面,也清晰定義每一種技術的用途。從現在開始,HTML負責設置文檔結構(結構元素),CSS則關注于如何將結構轉換為可視化效果和可用性,而JavaScript則負責實現功能和開發完整的Web應用程序。
網站與應用程序之間的界限已經完全消失。所需要的技術也一應具備。網頁的未來是光明的,而將這三種技術(HTML、CSS和JavaScript)演變和整合為一個強大的規范便是將Internet轉化成一個主導的開發平臺。HTML5顯然是朝著這個方向發展的。
重要提示:目前,并非所有的瀏覽器都支持HTML5特性,而且大多特性仍處于設計階段。我們建議您閱讀各個章節,并在最新版本的Google Chrome、Safari、Firefox或 Internet Explorer上執行示例代碼。GoogleChrome基于WebKit,這是一個開源瀏覽器引擎,幾乎支持所有的HTML5特性,因此Google Chrome是一個很好的測試平臺。Firefox是一個很適合開發者使用的優秀瀏覽器,它采用Gecko引擎,同樣也完全支持HTML5。最后,新版本的Internet Explorer(IE9)已經支持HTML5及大部分新特性。
不管使用哪種瀏覽器,一定要注意:優秀的開發者必須在市面上所有瀏覽器上安裝和測試所編寫的代碼。要在每一個瀏覽器上測試本書所提供的示例代碼。
本書最后提供了多種兼容舊版瀏覽器的設計方法,使未支持HTML5的瀏覽器也能夠正常訪問網站與應用程序。