5、 引用:瀏覽器和瀏覽器之間的差異一直都是web設計者心中永遠的痛,支援的css不一樣,支援的用戶端指令碼不一樣,有的竟然連用戶端指令碼的用法都有不同。這讓程式員非常苦惱,最明顯的就是調用xmlhttprequest了,req=(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");這段建立xmlhttp對象的代碼就是為了適應IE和非IE兩天陣營的瀏覽器的經典例子。說是沒有back和沒有history的瀏覽器,這也是一個諷刺,主要是指在AJAX下點選連結是不Redirect頁面,所以不存在後退和前進了,同樣,沒有後退和前進也就無存找瀏覽曆史紀錄了。back和history存在的根本就是url的改變,在AJAX下人們發現不改url也同樣能達到內容改變這個酷酷的特點,何樂而不為呢? 我提到過多次《網站重構》,這本書要解決什麼問題?femto 開始讀了嗎?曾經產生過讀這本書的慾望嗎? 建立 XMLHTTP 對象的不同文法只是一個非常小的問題,這是在 XMLHTTP 沒有被完全標準化之前的暫時問題。現在基於 Web 標準做開發,必須要寫針對不同瀏覽器的代碼片斷的場合已經非常少了,封裝這些差異的 JS 庫網上也已經有很多了。 無法利用 back/history 的問題在 Google Maps 中是使用 IFrame 來解決的,這個問題我在 BEA User Group 的演講中已經說過了。 6 引用:xml有一個致命的缺點,那就是載入的資源耗費,這好像是所有平台下xml的通病。google map雖然是Jesse James Garrett推薦的AJAX的品牌代言人,但是gmap並沒有用xml,而是用了原生的javascript數組,我自己在用AJAX從服務端傳回資料時也從來不用 XML,因為它讓我更繁瑣讓系統更慢。服務端首先要調用xml對要傳輸的資料進行封裝,用戶端得到資料後再調用xml進行解析,簡直是畫蛇添足。 致命嗎?我做了這麼多瀏覽器端的 XML 開發,為什麼至今沒有感受到?Google Maps 伺服器端傳給用戶端的資料就是不折不扣的 XML,其它的開發人員還可以對這個 XML 進行定製加入自己的資料。Google Maps 還在用戶端幾個功能上使用了 XSLT。說 Google Maps 沒有使用 XML,要不要我把我親自整理過的 Google Maps 用戶端的代碼發給你你才能閉嘴? 7、 引用:AJAX適用於什嗎?能幹什嗎?能帶來什嗎?在網站上用AJAX那是笑話,除非像Google Map和Flickr這樣的專業領域的網站外,普通網站根本沒必要用這個技術;在龐大的公司專屬應用程式市場估計還能有AJAX的一點容身之地,不過在MS、 SUN不會看著AJAX這個野孩子來在他們的地盤上撒潑的,如果大家都用AJAX,那java給誰賣?.net給誰賣?所以AJAX在公司專屬應用程式也不是長久之地。所以,AJAX現在找不到自己合適的位置是個很大的尷尬。疑病亂投醫,最近把AJAX的矛頭指向Flash和Applet就是一個例子。 又是一番奇談怪論。說大公司不會使用 Ajax 完全是主觀臆測。事實上,大量使用用戶端 JS 的大公司包括以下這些: Macromedia:在 Dreamweaver 產品中包括了大量的 JS 代碼。 Oracle:很多產品都使用了 JS,目前對於 Ajax 高度興趣。這個訊息是我在深圳 Oracle 做開發的一個朋友親口告訴我的。 SAP:早在很多年以前,SAP 就在其產品中大量使用了 JS+XMLHTTP 的技術,僅僅是 SAP 沒有炒做這個概念而已。說 Ajax 不適合公司專屬應用程式,SAP 是靠做什麼吃飯的? Google:我已經不需要再說什麼了。 |