文章

Javascript Library 雜談

(因為沒有什麼要點,所以又是雜談)

近年來 Javascript 因為 Ajax 而又再次備受注目,有人開發出不同形式的 Javascript library/framework 來加快開發的速度,用簡單的碼寫出複雜的 UI。對我來說,一個 framework/library 最好可以:

  • 調解不同瀏覽器之間的差別,使開發者可以使用統一的 API 來寫程式,如 event listener
  • 用不同的 helper utilities 來補足 Javascript 的不足,如 collections, validation
  • 簡化過去的複雜 UI 寫法,如 fade in/out, drag and drop 等等
  • 提供一些常用的 widget,如 date selector, datagrid
  • 各個不同的模組可以分開來使用,不用一次過載入大體積的檔案

而在網上,幾個令我注目的 Javascript library/framework:

(一) 基本型

  • Prototype – 提供很多在寫程式上很便利的功能,得到不少開發者支持,也有不少教學文章,他衍生出其他 的 library 如 script.aculo.us、Rico 等等。
  • jQuery – 像 Prototype 般提供 dom, event, animation 等等。其最強的是可配用 css selector/xpath 來選取 dom 物件,而且方法間還是 chainable (所以是 Query) ,可用簡單一句做出本來幾十行才做到的複雜事。還有是它只有十多 KB 的大小,實在是小巧實用。雖然還是蠻年幼的 library,但期待日後會更有發展。

(二) 豐富型

  • Dojo toolkit – 內容最豐富的 library,除了一些 basic ajax 外,還有不同的 data structures, widgets, math, crypto 等等。其中最注目的當然是 dojo.storage,可以在 client side 存放比較大量的資料了。其 packaging 方法讓你可以做到一般程式的 import 效果,可以用到先加入。可是到現時為止,教學文件還是缺缺的,有瞎子摸象的感覺。
  • Yahoo! UI – 一套很不錯而且完善的 library set,其 Event library 有很好的 wrapping,如 automatic scope correction, event object browser abstraction 等等,解決了令開發者很煩惱的問題。當然還包括了 dom, animation, connection manager 等等。最驚喜的 (但也不關 javascript 事) 是它還包括了 CSS library,用一個蠻有系統的方法,去做 CSS Layout。有詳細的說明文件和例子,很易上手。

有那麼多的 framework/library ,各自有不同的用戶群,實在令人眼花撩亂,很難取捨。而這些 framework/library 都是 client side 的,他們會如何與 server side 的技術結合也將是關鍵。

回應

  1. 最近試玩 AJAX,Prototype,Dojo,YUI 都有看過。
    看法和你差不多:
    Prototype 簡單易上手,配合 script.aculo.us 就非常好用。Rico 看來也不錯,有機會試試。
    Dojo 是很豐富,但 Doc 真的不多,較難上手。
    YUI 給我最大的驚喜也是 CSS Library。

*