2011年9月24日 星期六

Why jQuery is so Magical?

昨天在跟某位 Web Developer 聊天時提到 jQuery,我於是隨口把 jQuery「到底為什麼會這麼神奇」用最簡單的方法講完。事後講講整理得很有道理,於是我打下來吧:

jQuery 背後的故事 or 為什麼需要 jQuery
  1.  jQuery 操作文件內容的根基是瀏覽器的 DOM(Document Object Model)功能。這個功能可以追溯到早期的 Netscape 和 IE,從所謂的 DHTML 一路變成今天的 DOM。
    DOM 做的事情就是「把 HTML 文件用樹狀的方式操作」,因此可以動態變化網頁內容。

    但使用 DOM 操作文件,會有程式碼冗長且有瀏覽器相容的問題(尤其是 IE)。
  2. jQuery 操作 AJAX 用的是 XMLHttpRequest,這是 IE 開始推廣的神奇技術,現在已經廣泛內建在各種瀏覽器裡。但也是有瀏覽器實現相關的問題 Orz 
jQuery 做了哪些魔法
DOM 上:
  1. 解決了絕大部分瀏覽器在 DOM 操作/事件處理下的 Bug
  2. 寫了一個神奇的 Selector 解析器叫 Sizzle,可以把大部分的 CSS Selector 轉譯成對應的 DOM Tree 元素
  3. 以 jQuery Object 把對應的 DOM Tree 包裝起來,所以可以進行 Chaining
  4. 以神妙的方式對事件處理做了很大的擴充(bind() 和 live())
  5. 可以用神妙的 .data() 在一個 DOM Tree 中加註資訊
AJAX 上:寫了神妙的 AJAX 函式,還一併處理了 JSONP 方面的問題


就這樣吧,應該有地方有錯,歡迎大家指責 XD