本人雖接觸ajax不久,但對(duì)AJAX的七宗罪很是質(zhì)疑:
質(zhì)疑罪之一:對(duì)搜索引擎的支持不好
的確ajax技術(shù)讓頁面沒有鏈接,難以讓搜索引擎搜索。但是進(jìn)步的技術(shù)能帶動(dòng)其他相對(duì)“落后”的
技術(shù)。想想當(dāng)年互聯(lián)網(wǎng)從html靜態(tài)頁面過渡到asp/jsp/php動(dòng)態(tài)網(wǎng)頁的時(shí)候,搜索引擎也經(jīng)過了一個(gè)
適應(yīng)階段。幾年前做web的時(shí)候,還有文章說動(dòng)態(tài)頁面不容易被google發(fā)現(xiàn),現(xiàn)在還有誰敢說google
對(duì)動(dòng)態(tài)網(wǎng)頁支持不好?只有新技術(shù)促進(jìn)搜索引擎的發(fā)展,而不是新技術(shù)去適應(yīng)搜索引擎!
質(zhì)疑罪之二:編寫復(fù)雜、容易出錯(cuò)
有很多公司已經(jīng)有了自己的一套庫,比如說backbase,bindows他們都有一整套完整的開發(fā)模式,如
果你認(rèn)為不好調(diào)試的話,你用用backbase的那套庫試試,里面有非常完善的調(diào)試以及出錯(cuò)信息顯示
。
最近微軟正致力于簡化Ajax風(fēng)格Web應(yīng)用的開發(fā),并提供豐富的、可交互的和個(gè)性化的用戶體驗(yàn)。開
發(fā)者可以對(duì)客戶端腳本不甚了解;但他們可以很容易地開發(fā)和調(diào)試這種應(yīng)用程序。
質(zhì)疑罪之三:冗余代碼更多了
ajax的一個(gè)優(yōu)點(diǎn)就是根據(jù)需要向服務(wù)器端發(fā)送請(qǐng)求,用什么就取什么、用多少就取多少,根本不會(huì)
有數(shù)據(jù)的冗余和浪費(fèi),而且更新頁面時(shí)不用重載全部內(nèi)容,只更新需要更新的那部分即可。而且
ajax的一個(gè)最大的優(yōu)點(diǎn)就是異步傳輸(Asynchronous),她可以讓你在無刷新的基礎(chǔ)之上一邊看文
章,一邊又能向服務(wù)器提交你的回復(fù)信息。利用好這個(gè)異步,才能算是掌握了AJAX的精髓。
質(zhì)疑罪之四:破壞了Web的原有標(biāo)準(zhǔn)
Web標(biāo)準(zhǔn)應(yīng)該往前發(fā)展,既然web已經(jīng)不是單純的信息網(wǎng)絡(luò),而是更高級(jí)系統(tǒng)應(yīng)用的媒介,那么理應(yīng)
有更為先進(jìn)的標(biāo)準(zhǔn)。事實(shí)上web的標(biāo)準(zhǔn)也在不斷的改進(jìn)中。用舊有的標(biāo)準(zhǔn)桎梏新生技術(shù),未免就殘忍
了一些。
質(zhì)疑罪之五:缺少一個(gè)沒有標(biāo)準(zhǔn)之爭、沒有back和history的瀏覽器
現(xiàn)在瀏覽器之間的差異的確存在,的確讓程序員很苦惱,但是這不是ajax引起的,這是瀏覽器自己
的問題,比如說IE對(duì)ajax支持得不是太好,但是最近微軟剛發(fā)表過聲明說:今后的IE中將擁有Ajax的
所有東西——DHTML、JScript和XmlHttp。可見IE正在適應(yīng)ajax!
還有,他提出了“那兩個(gè)網(wǎng)站除了酷酷的感覺,毫無用處”,網(wǎng)站有沒有用跟網(wǎng)站所用的技術(shù)有關(guān)
嗎?換個(gè)角度,那你說google map 和gmail有沒有用呢?
質(zhì)疑罪之六:XML只是用來打幌子
xml的數(shù)據(jù)定義明確,使用簡單,為日后的維護(hù)提供了很大的方便。如果程序都都是采用你自己定義
的數(shù)據(jù)格式,而且不同的數(shù)據(jù)可能還有不同的格式,那為日后的維護(hù)帶來了不便。
其實(shí),降低維護(hù)的成本比降低開發(fā)的成本更重要。不過當(dāng)你隔個(gè)一兩年再回頭看你的代碼時(shí),你可
能也會(huì)一頭霧水, 更不要說接你手的人。所以說標(biāo)準(zhǔn)真的很重要,如果大家都按標(biāo)準(zhǔn),這世界將會(huì)
少很多麻煩。
質(zhì)疑罪之七:世界這么大卻找不到自己的家
誰說ms反對(duì)ajax了?ms正在啟動(dòng)一個(gè)新的項(xiàng)目Atlas:微軟的Ajax。可以說微軟對(duì)Ajax風(fēng)格的日益流
行的富客戶端應(yīng)用于越來越感興趣。微軟的很多站點(diǎn)也使用了ajax這項(xiàng)技術(shù),如Start.com和MSN虛
擬地球。
而在今年上半年Sun就計(jì)劃把a(bǔ)jax加入到J2EE中,從而實(shí)現(xiàn)更好的動(dòng)態(tài)Web應(yīng)用程序。
ajax很大程度上來說只是一個(gè)客戶端技術(shù),她完全可以與.net或j2EE相結(jié)合,做出很多單用.net或
j2ee做不出的效果出來。
總之Ajax是一種方法一種態(tài)度,如果你覺得你需要Ajax,Just do it;如果不需要,Let it be