DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 駁“AJAX 的七宗罪
駁“AJAX 的七宗罪
編輯:AJAX詳解     
我不帶任何主觀色彩來評一下這個所謂的 “AJax 的七宗罪”。 

1、連帶著 Flash 和 AJax 一塊罵了。 

引用:沒有鏈接的web就像森林中迷路的羔羊,這句看似廣告語,其實是web設計的根本原則。 

這句“原則”至少我並不知道,因此看起來不過就是一句廣告語而已。我的原則是 Web 應用首先需要對於最終用戶友好,然後才需要考慮對於搜索引擎友好。你使用 Html FORM 提交的數據也是沒有鏈接的,這些數據可以被搜索引擎搜索到嗎?換句話說,可以添加在鏈接 URL 中的只有通過 GET 方法發送的請求。搜索引擎難道連使用 POST 方法提交的 FORM 數據都能搜索到嗎?如果搜索引擎能搜索到這些數據,搜索引擎搜索到同樣通過 HTTP 協議以明文形式發送的 XML 數據難道是很困難的事情嗎? 

必須要考慮對於搜索引擎友好的應用也是有限的。你以為 Google 真的沒有辦法解決這些問題嗎?太小看 Google 了吧? 

2、這個作者顯然很少做 JavaScirpt 開發,以至於說出這樣沒有調查的話來: 

引用:更可怕的是在Javascript中竟然沒有一款順手的Debug軟件,很多寫JS的老手到今天還是用最原始的alert("")來調試,splinetech JavaScript Html Debugger 算是一個看起來還像個樣子的調試器吧,可惜不是免費的,幾十大刀讓我這種窮人只能望而生歎了。

M$ Visual InterDev、Office 2003 中帶的 Script Debugger 都是非常好用的調試工具。如果不願意花錢買這些工具,還可以使用 Mozilla 開發的 Venkman,調試功能已經非常完善了。說 JS 沒有很好的 IDE 是實情,說 JS 沒有很好的調試工具簡直是天大的笑話。 

3、引用:和上面說的差不多,層層包含JS文件是AJax的通病,再加上以往的很多服務端代碼現在放到了客戶端,所以每次打開一個頁面會包含很多的無用的JS文件也一同下載下來。雖然寬帶越來越普及,但是減少代碼冗余還是每個web設計者的必修課。

完全是沒有調查的胡說,如果通過不同的文件對於 JS 代碼進行了認真的組織,將 JS 函數分到很多小文件中,一個頁面僅僅只需要加載它自己使用到的 JS 文件,何來冗余代碼之說? 

4、引用:什麼叫破壞web標准?點擊查看全部,這就是破壞了web標准。好好的A標簽放著不用,偏要用span。這種例子很多,flickr中的標題單擊後可以更改,這雖然(也包括我)是大家一致叫好覺得方便的設計,但同時這也是歧義了 web元素本身的含義,物是人非這個詞不知道用的合不合適?

這僅僅是一個具體應用中的用法,居然也歸到了 Ajax 頭上,真是欲加之罪,何患無詞。這裡如果簡單地將 span 換成 a 難道不是很容易的事情嗎?如果使用 a 就不能使用 onclick 了嗎?按照作者的想法,似乎所有的 a 都應該只能是簡單鏈接,不能加上 onclick,加上 onclick 就變成了 AJax,就觸犯了天條,破壞了 Web 標准。況且給 span 加上一個 onclick 居然就上綱上線到破壞 Web 標准的層次,我研究 Web 標准這麼多年,也沒有看出究竟破壞了哪一款哪一條的 Web 標准。Web 標准中什麼地方規定只允許使用 a,不允許使用 span 來實現了?況且在最新的 XHtml 1.2 標准中,a 已經變成了一個不推薦使用的標記。什麼是 Web 標准,什麼是破壞 Web 標准?回去翻翻書吧。 

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:我已經不需要再說什麼了。 
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved