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標准?<span /detail/";">點擊查看全部</a>,這就是破壞了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