- JavaScript高級程序設(shè)計(第3版)
- (美)Nicholas C.Zakas
- 961字
- 2020-06-23 12:52:26
1.1 JavaScript簡史
在Web日益流行的同時,人們對客戶端腳本語言的需求也越來越強烈。那個時候,絕大多數(shù)因特網(wǎng)用戶都使用速度僅為28.8kbit/s的“貓”(調(diào)制解調(diào)器)上網(wǎng),但網(wǎng)頁的大小和復(fù)雜性卻不斷增加。為完成簡單的表單驗證而頻繁地與服務(wù)器交換數(shù)據(jù)只會加重用戶的負擔。想象一下:用戶填寫完一個表單,單擊“提交”按鈕,然后等待30秒鐘,最終服務(wù)器返回消息說有一個必填字段沒有填好……當時走在技術(shù)革新最前沿的Netscape公司,決定著手開發(fā)一種客戶端語言,用來處理這種簡單的驗證。
當時就職于Netscape公司的布蘭登·艾奇(BrendanEich),開始著手為計劃于1995年2月發(fā)布的Netscape Navigator 2開發(fā)一種名為LiveScript的腳本語言——該語言將同時在瀏覽器和服務(wù)器中使用(它在服務(wù)器上的名字叫LiveWire)。為了趕在發(fā)布日期前完成LiveScript的開發(fā),Netscape與Sun公司建立了一個開發(fā)聯(lián)盟。在Netscape Navigator 2正式發(fā)布前夕,Netscape為了搭上媒體熱炒Java的順風車,臨時把LiveScript改名為JavaScript。
由于JavaScript 1.0獲得了巨大成功,Netscape隨即在Netscape Navigator 3中又發(fā)布了JavaScript 1.1。Web雖然羽翼未豐,但用戶關(guān)注度卻屢創(chuàng)新高。在這樣的背景下,Netscape把自己定位為市場領(lǐng)袖型公司。與此同時,微軟決定向與Navigator競爭的自家產(chǎn)品Internet Explorer瀏覽器投入更多資源。Netscape Navigator 3發(fā)布后不久,微軟就在其Internet Explorer 3中加入了名為JScript的JavaScript實現(xiàn)(命名為JScript是為了避開與Netscape有關(guān)的授權(quán)問題)。以現(xiàn)在的眼光來看,微軟1996年8月為進入Web瀏覽器領(lǐng)域而實施的這個重大舉措,是導(dǎo)致Netscape日后蒙羞的一個標志性事件。然而,這個重大舉措同時也標志著JavaScript作為一門語言,其開發(fā)向前邁進了一大步。
微軟推出其JavaScript實現(xiàn)意味著有了兩個不同的JavaScript版本:Netscape Navigator中的JavaScript、InternetExplorer中的JScript。與C及其他編程語言不同,當時還沒有標準規(guī)定JavaScript的語法和特性,兩個不同版本并存的局面已經(jīng)完全暴露了這個問題。隨著業(yè)界擔心的日益加劇,JavaScript的標準化問題被提上了議事日程。
1997年,以JavaScript 1.1為藍本的建議被提交給了歐洲計算機制造商協(xié)會(ECMA,European Computer Manufacturers Association)。該協(xié)會指定39號技術(shù)委員會(TC39, Technical Committee #39)負責“標準化一種通用、跨平臺、供應(yīng)商中立的腳本語言的語法和語義”(http://www.ecma_international.org/memento/TC39.htm)。TC39由來自Netscape、Sun、微軟、Borland及其他關(guān)注腳本語言發(fā)展的公司的程序員組成,他們經(jīng)過數(shù)月的努力完成了ECMA-262——定義一種名為ECMAScript(發(fā)音為“ek-ma-script”)的新腳本語言的標準。
第二年,ISO/IEC(International Organization for Standardization and InternationalElectrotechnical Commission,國標標準化組織和國際電工委員會)也采用了ECMAScript作為標準(即ISO/IEC-16262)。自此以后,瀏覽器開發(fā)商就開始致力于將ECMAScript作為各自JavaScript實現(xiàn)的基礎(chǔ),也在不同程度上取得了成功。
- C語言程序設(shè)計立體化案例教程
- Visual C
- Learning AndEngine
- QTP自動化測試進階
- 深入淺出Serverless:技術(shù)原理與應(yīng)用實踐
- Android開發(fā):從0到1 (清華開發(fā)者書庫)
- PySpark Cookbook
- The Professional ScrumMaster’s Handbook
- Internet of Things with ESP8266
- 開源項目成功之道
- 從零開始:UI圖標設(shè)計與制作(第3版)
- Java EE 7 with GlassFish 4 Application Server
- iOS開發(fā)項目化入門教程
- 會當凌絕頂:Java開發(fā)修行實錄
- 城市信息模型平臺頂層設(shè)計與實踐