JavaScript 花了很長一段時間才產生影響。許多與 JavaScript 相關的技術存在了一段時間,直到它們被主流發現。本節說明了從 JavaScript 創建至今發生的事情。在整個過程中,只提到了最受歡迎的專案,而忽略了許多專案,即使它們是第一個。例如,Dojo Toolkit 已列出,但也有鮮為人知的 qooxdoo,它是在大約同一時間創建的。而且 Node.js 已列出,儘管 Jaxer 在它之前就存在
2001 年,Douglas Crockford 命名並記錄了 JSON(JavaScript 物件表示法),其主要概念是使用 JavaScript 語法以文字格式儲存資料。JSON 使用 JavaScript 文字來表示物件、陣列、字串、數字和布林值,以表示結構化資料。例如:
{
"first"
:
"Jane"
,
"last"
:
"Porter"
,
"married"
:
true
,
"born"
:
1890
,
"friends"
:
[
"Tarzan"
,
"Cheeta"
]
}
多年來,JSON 已成為 XML 的熱門輕量級替代方案,特別是在要表示結構化資料而不是標記時。當然,JSON 很容易透過 JavaScript 使用(請參閱 第 22 章)。
Ajax是一組技術,為網頁帶來與桌面應用程式相媲美的互動性。2005 年 2 月推出了一個令人印象深刻的範例,說明了透過 Ajax 可以達成什麼:Google 地圖。此應用程式允許您平移和縮放世界地圖,但只有目前可見的內容才會下載到瀏覽器。在 Google 地圖推出後,Jesse James Garrett 發現它與其他互動式網站共享某些特質。他將這些特質稱為 Ajax,是 非同步 JavaScript 和 XML 的簡稱。[7] Ajax 的兩個基石是在背景中非同步載入內容(透過 XMLHttpRequest
)並使用結果動態更新目前的頁面(透過動態 HTML)。這是一個顯著的可用性改善,因為它總是執行完整的頁面重新載入。
Ajax 標誌著 JavaScript 和動態網路應用程式的主流突破。有趣的是,這花了多長時間,那時 Ajax 的成分已經存在多年。自 Ajax 誕生以來,其他資料格式已變得流行(JSON 取代 XML),其他協定已使用(例如,除了 HTTP 之外的 Web Sockets),並且雙向通訊是可能的。但基本技術仍然相同。然而,術語 Ajax 在現今已少用,並且大多已被更全面的術語 HTML5 和 Web Platform(兩者都表示 JavaScript 加上瀏覽器 API)所取代。
Node.js 讓您可以實作在負載下效能良好的伺服器。為此,它使用事件驅動、非封鎖 I/O 和 JavaScript(透過 V8)。Node.js 建立者 Ryan Dahl 提及選擇 JavaScript 的原因如下:
Dahl 能夠建立在事件驅動伺服器和伺服器端 JavaScript(主要是CommonJS 專案)的先前工作上。
Node.js 對 JavaScript 程式設計師的吸引力不只在於能夠使用熟悉的語言;您可以在用戶端和伺服器上使用相同的語言。這表示您可以共用更多程式碼(例如,用於驗證資料)並使用同構 JavaScript等技術。同構 JavaScript是關於在用戶端或伺服器上組裝網頁,有許多好處:網頁可以在伺服器上呈現,以加快初始顯示、SEO,以及在不支援 JavaScript 或版本太舊的瀏覽器上執行。但它們也可以在用戶端上更新,進而產生更具回應性的使用者介面。
使用 Chrome OS,網路平台就是原生平台。這種做法有幾個優點:
推出行動作業系統 webOS(起源於 Palm,現在由 LG 電子所有)早於推出 Chrome OS,但「瀏覽器作為作業系統」的想法在後者中更為明顯(這就是為什麼它被選為里程碑)。webOS 同時更少也更多。更少,因為它非常專注於手機和平板電腦。更多,因為它內建 Node.js,讓您可以在 JavaScript 中實作服務。網路作業系統類別中較新的項目是 Mozilla 的 Firefox OS,它鎖定手機和平板電腦。Mozilla 的 wiki提到網路作業系統對網路的一項好處
我們也需要一個目標,以便界定和集中我們的努力。最近,我們看到 pdf.js 專案 [透過 HTML5 呈現 PDF,不使用外掛程式] 揭露了需要填補的小差距,才能讓「HTML5」成為 PDF 的超集。我們現在想要邁出更大一步,找出讓網路開發人員無法建立應用程式的差距,這些應用程式在各方面都等同於為 iPhone、Android 和 WP7 建立的原生應用程式。