AJAX全稱為「Asynchronous JavaScript and XML」(非同步JavaScript和XML),是一種創建互動式網頁應用的網頁開發技術。它使用:
- 使用XHTML+CSS來表示信息;
- 使用JavaScript操作DOM Document Object Model進行動態顯示及交互;
- 使用 XML 和 XSLT 進行數據交換及相關操作;
- 使用 XMLHttpRequest對象與Web伺服器進行非同步數據交換;
- 使用 JavaScript 將所有的東西綁定在一起。
from http://zh.wikipedia.org/wiki/AJAX
今天花了一個下午, 看了很多 ajax的定義,也仔細看過很多ajax的原始碼~得出一個結論:
不要為了ajax而學ajax
其實ajax的重點部分只是局部的更新網頁資料,不過太多大把以前的js拿來大喊 "這是ajax的魔法!!" 甚麼鬼啊..
學習是一件好事,如果大興趣的話可以學習ajax的原理,甚至實作一下,只是我覺得,ajax把大部分的判斷交給使用端,以及不一致、不穩定的架構現在還不能使用,否則你必須花超長的時間作測試,你甚至沒辨法給予沒開js的使用者服務。
說ajax能提供 "互動的服務" 充其量只是使用者能把東西拉來拉來,又可以動態讀取檔案,那個其實一點都不新鮮。以前的js就做得到了。至於與php、jsp的結合,感覺上更是覺得安全性有問題。至於重點的"省頻寬" 部分,個人認為除非真的是很大的網站,否則那個時間差根本少到使用者無法際覺,也許它標榜的是 "好像沒有重畫!!!" 很可惜的是,使用者沒看到重畫,就說 "它當掉了!!!"
ajax只針對某些特別要求的商業用途有用,而其開發成本(時間)過高,而xml定義的文作內容,如果沒有好好的取名,根本就是全部斷開,內部的搜尋的確很好,可是恐怕google不會理它 (html檔的內容就是-- include一個js檔)。
再者,現階段ajax的維護也非常難,本來靜態的東西一個html檔好了,現在要分成css, xml, xsl, js, html ,全部都互有連結,要改真的不知改哪好。如果是同一個人改那就ok啊,重點是,我看別人的原始碼,根本是瘋掉了﹐顯示幾段文字而已,為了要它 "不要整個重畫!" 寫了兩頁程式!!! 那個js的檔比任何它的 "xml" 檔,真正要顯示的文件內容都大! 兩個加起來根本就是兩倍啊, 甚麼省頻寬啊 = =...
還有就是"上一頁" 的問題,根本沒法用,有一些程式設計師好像解決了,可是天啊, 它又寫一大段東西去解決,而且最後用"上一頁" 還是整頁重新下載,那不是根本沒有用嗎 = =..." 最後就是,多媒體的問題,身為ria不能缺少的啊,你再能把東西動來動去,影像、聲音的整合也是很重要的,ajax不太可能做得到啊,不然又是一大段code,現階段的ajax不太可能取代 flash。
不過我還是很想看看有誰會寫ajax的online game,總結來說,ajax的開發是很花成本的,而它的重點只是" 畫面看起來沒有整個重畫!!" 身為資訊人,當然要看看這個東西是甚麼,但是希望不要盲目去為了寫出ajax的東西而去學,它還未成熟,而且很有可能像linux一樣,打不進使用者巿場的。(用linux的人說, linux應該取代 windows啊, 可是他們沒想到,大部分買windows的人就是因為他們只想增加工作效率, linux可以設定,可是不見得每個人有這個時間。各有所需啊!) 對於商業巿場來說,除非ajax可以像.net那樣快的開發及可以作穩定的測試,否則是沒有價值的。(你試想想你開發了很久的ajax,突然有一個人說,我都看不到,我不會設ie啊, 就是甚麼都沒有!)
如果你已經會flash的話﹐建議不要學ajax了。
最後一點需註明的是,技術只是輔助,好的網頁並不取決於使用甚麼技術,而是使用技術的合理性。


