AJAX ( Asynchronous JavaScript and XML ) 是近來網頁技術中被提到最多次的名詞。
簡單講 AJAX 的原理就是透過 JavaScript 操作 XMLHttpRequest 元件、HTML DOM 模型以達到讓瀏覽器在不換頁的情形下可以變更頁面上的資料內容。聽起來似乎很簡單,但隱藏的問題卻也不少:
- 瀏覽器的支援差異:例如 Gecko 核心、IE 核心、KHTML 核心、Opera 核心等就各有其 XMLHttpRequest 元件名稱,更糟的是即是同一系列的核心都有可能出現前後不相容的鳥問題。至於純文字型的瀏覽器則應該是被拒於 AJAX 門外了吧?
- 操作流程的控制:使用 GMail 時應該會發現到如果快速點選幾項高負載的功能時,後面的指令不能終止前一個指令的執行。所以有一種說法是:『使用者沒有後悔的機會』,不過我以為這可以透過操作流程的規劃來避免。
- 資料安全性的疑慮:總不會有人覺得信用卡資料在不知不覺間被傳送到 Server 上是一件好事吧?
- 對各種技術的理解程度:
- 如果不會操作 XMLHttpRequest 元件,那就別想讓瀏覽器背地裡偷偷向 Server 要資料。
- 如果對 HTML DOM 不熟悉的話,怎可能動態去變更網頁上的內容呢?(這屬於 DHTML 範圍,算是個很老的技術了。還記得 5 年多前曾買了一本微軟的 DHTML 應用手冊哩!)
- 個人是以為最關鍵的技術是 JavaScript 的操作,上面講的技術都要以 JavaScript 進行控制。
要純手工與 AJAX 正面硬幹當然可行,只要能統合各種技術的操作的確可以純手工打造一組 AJAX 應用系統。不過人性始終來自於惰性,我還是找些 Framework 來減少腦細胞的損耗吧!
AJAX Framework for Java:
- Getahead: DWR - Direct Web Remoting
- ZK Project
- ...
參考資料:
- Mozilla@Taiwan Wiki:AJAX 上手篇
- Luar 的 Flash 遊樂場:新手玩Ajax幾個留意地方
- 嘟嘟老窝:
- Thinking in AJAX(一) —— AJAX - X
- Thinking in AJAX(二) —— 基于AJAX的WEB设计
- Thinking in AJAX(三) —— AJAX框架汇总
- iThome Online:AJAX:網頁互動新典範
沒有留言:
張貼留言