淺談Ajax的缺點(diǎn)_AJAX教程
推薦:使用AJAX技術(shù)打造博客無(wú)刷新搜索引擎如果你對(duì)AJAX不是很了解,可以先看看這篇教程: 《AJAX初體驗(yàn)之上手篇》 。 現(xiàn)在博客很流行,相信應(yīng)該上網(wǎng)時(shí)間稍微長(zhǎng)點(diǎn)的朋友都會(huì)在這或者在那的有一個(gè)自己的博客。對(duì)于一些有一定能力的朋友,可能更喜歡自己去下載一個(gè)博客程序來(lái)架設(shè)一個(gè)自己的博客,而不是
在某網(wǎng)站瞎逛時(shí),發(fā)現(xiàn)這個(gè)鏈接,進(jìn)去逛了逛,覺(jué)得很有意思,大家也可以去看看,姑且不論你是否同意里面的觀點(diǎn),看看別人看待ajax的角度,這對(duì)于理解一個(gè)事物很有幫助。
下面是我對(duì)一部分缺陷的看法:
為Ajax而Ajax(Using Ajax for the sake of Ajax.)
很同意這點(diǎn),當(dāng)一個(gè)技術(shù)本身的生存意義由于它自身的亮點(diǎn)而被抹殺,不知道是這個(gè)技術(shù)的幸運(yùn)還是不幸。
干掉了back按鈕(Breaking the back button)
back按鈕是一個(gè)標(biāo)準(zhǔn)的web站點(diǎn)UI的重要功能。然后,后退按鈕沒(méi)法和js很好的合作……
gmail似乎作的很好?不過(guò)沒(méi)去仔細(xì)看過(guò)gmail如何實(shí)現(xiàn)后退和js相容的,被這個(gè)mistake一提醒,也許這也是ue的一個(gè)切口哦。
點(diǎn)擊的時(shí)候沒(méi)有提供一個(gè)可視化的提示(Not giving immediate visual cues for clicking widgets)
……也許是我沒(méi)看懂,覺(jué)得寫(xiě)這段的人自相矛盾。。他說(shuō)沒(méi)提供可視化提示,不過(guò)是拿gmail右上角的紅色提示作為例子。
阻擋了離線用戶于門(mén)外(Leaving offline people behind)
看標(biāo)題就清楚了,不過(guò)我持保留意見(jiàn),web application和離線瀏覽本身似乎就存在著矛盾,要整合,可能要?jiǎng)雍芏嗄X子
別讓我等(Don’t make me wait)
不過(guò),ajax本身就存在著如果客戶端的帶寬不夠,它的展示就會(huì)一塌糊涂的問(wèn)題,這是它的先天缺陷,也是它崛起的先天因素--由于網(wǎng)速和帶寬的不斷增大,使得服務(wù)端與客戶端的頻繁通信成為可能。
顯式的傳遞敏感信息(Sending sensitive information in the clear)
使用js傳遞數(shù)據(jù),本身似乎就存在著這個(gè)風(fēng)險(xiǎn),在我找到反對(duì)意見(jiàn)之前,我傾向認(rèn)同這點(diǎn)--h(huán)ttps協(xié)議除外。
假設(shè)ajax發(fā)展是一個(gè)單平臺(tái)的發(fā)展。(Assuming AJAX development is single platform development)
作者文中的觀點(diǎn)是ajax由于必須兼容多個(gè)瀏覽器,而沒(méi)法做到只需要編碼到標(biāo)準(zhǔn)的js就行,還要考慮到各個(gè)瀏覽器的問(wèn)題……這個(gè)是js的問(wèn)題,和ajax關(guān)系不大吧?
忘掉了可能多人在同時(shí)使用同一個(gè)應(yīng)用(Forgetting that multiple people might be using the same application at the same time)
嗯,這其實(shí)是一個(gè)同步的問(wèn)題,在b/s系統(tǒng)中這是一個(gè)麻煩的問(wèn)題……當(dāng)然,也許并不麻煩,做一個(gè)標(biāo)記位就解決了吧?
太多代碼讓瀏覽器慢下來(lái)(Too much code makes the browser slow)
呃……同意這點(diǎn),雖然在代碼優(yōu)化之后會(huì)有很大改善,但js本身運(yùn)行速度慢這個(gè)缺陷還是會(huì)成為一個(gè)瓶頸。
不計(jì)劃要那些禁用或者沒(méi)有js的用戶(Not having a plan for those who do not enable or have JavaScript)
呃……我在頁(yè)面上用ajax的時(shí)候就準(zhǔn)備放棄這些用戶了,我沒(méi)google那么閑,作兩套系統(tǒng),一套用ajax,一套純頁(yè)面。不過(guò)養(yǎng)成一個(gè)良好的編碼習(xí)慣還是有必要,比如在超鏈接中不要直接設(shè)置href="javascript:..."而使用onmouseup或者onclick來(lái)觸發(fā)事件,偶爾也為別人考慮考慮嘛,而且我也不能保證我的js程序在所有的瀏覽器上通吃。
不期然的頁(yè)面閃爍和改變(Blinking and changing parts of the page unexpectedly)
我沒(méi)經(jīng)歷過(guò)以前網(wǎng)頁(yè)中blink標(biāo)簽的騷擾,所以我對(duì)作者的反感有點(diǎn)摸不著頭腦,我覺(jué)得在適當(dāng)?shù)奶崾局笏⑿履硥K頁(yè)面總比整個(gè)頁(yè)面的刷新看起來(lái)舒服。
沒(méi)法把超鏈接發(fā)給朋友以及收藏(Not using links I can pass to friends or bookmark)
嘿嘿,這就是我上面提及的那點(diǎn),如果編碼習(xí)慣夠好--而且時(shí)間夠多,在超鏈接中為非js用戶和js用戶提供兩套方案是可行的。
同步導(dǎo)致的批量操作(Asynchronously performing batch operations)
作者的意思是說(shuō)ajax一次性把原來(lái)要分幾次作的操作一次做掉,而導(dǎo)致他沒(méi)法跟蹤每個(gè)元素變化,沒(méi)法回溯,呃……也許是有這種需求吧。。不過(guò)似乎也是可以解決的吧?
導(dǎo)致頁(yè)面滾動(dòng)并讓我迷失位置(Scrolling the page and making me lose my place)
作者認(rèn)為插入文本到一個(gè)頁(yè)面中會(huì)導(dǎo)致頁(yè)面發(fā)生滾動(dòng),并讓其迷失方向,我沒(méi)看過(guò)這么惡心的效果,沒(méi)法評(píng)價(jià),不過(guò)我對(duì)于一些ajax的導(dǎo)航作的不好表示不滿意,我經(jīng)常會(huì)迷失于一些ajax程序中而不知道我剛才上一步到了哪里……
發(fā)明了新的UI習(xí)慣(Inventing new UI conventions)
呵呵,作者用了一句話來(lái)描述這個(gè)缺點(diǎn):“點(diǎn)擊一個(gè)不明顯的東東來(lái)產(chǎn)生一個(gè)不明顯的結(jié)果”。這個(gè)歸納倒是滿準(zhǔn)確的,在很多ajax程序中,用戶完全是作為一個(gè)瞎子,在抖抖索索的摸著這個(gè)ajax程序大象,在到處瞎點(diǎn)一氣并瞎拖一氣之后才掌握這個(gè)程序的用法。但是換個(gè)角度來(lái)說(shuō),最開(kāi)始的web頁(yè)面不也是一樣?沒(méi)有開(kāi)始的困難接觸,不會(huì)有之后的進(jìn)步,只要有足夠的幫助,上手任何東西都應(yīng)該不會(huì)太難--除非這東西本來(lái)就不想讓人覺(jué)得好用,那就是其它的問(wèn)題了。
阻止了爬蟲(chóng)(Blocking Spidering)
同意這點(diǎn),我在猶豫著使用ajax的時(shí)候,就在考慮爬蟲(chóng)對(duì)js的不感冒,以及爬蟲(chóng)該如何理解我那些以奇怪方式加載的頁(yè)面,去解析ajax庫(kù)似乎是一個(gè)不可能的事情,爬蟲(chóng)又不是人腦,如果爬蟲(chóng)可以媲美人腦,那就是《駭客帝國(guó)4》了。
字符集(Character Sets)
ajax本身對(duì)字符集的支持比較缺失,這個(gè)這個(gè)……設(shè)置成utf-8吧,不過(guò)作者最后也是這么說(shuō)的。
使用超鏈接改變狀態(tài)(Changing state with links (GET requests))
作者認(rèn)為主流的ajax應(yīng)用程序都是用get方式來(lái)工作,而這違反了W3對(duì)GET和POST方法的使用建議……我少見(jiàn)多怪,主流的ajax應(yīng)用程序我沒(méi)怎么去看,不知道是不是真的都用get,雖然ajax編碼用get簡(jiǎn)單,但不表示ajax不能用post吧?
沒(méi)有連帶改變頁(yè)面中其它相關(guān)部分(Not cascading local changes to other parts of the page)
因?yàn)閍jax讓人很容易控制頁(yè)面中的特定部分,所以也容易導(dǎo)致過(guò)于關(guān)注某個(gè)點(diǎn)而失去對(duì)整體布局的關(guān)注。嗯嗯……這是編碼的問(wèn)題,表怪到ajax頭上。
問(wèn)題報(bào)告(Problem reporting)
作者認(rèn)為服務(wù)端的程序錯(cuò)誤,很容易再現(xiàn)并捕捉,而客戶端的錯(cuò)誤要重現(xiàn)就比較麻煩,嗯,支持這點(diǎn),不過(guò)還是和ajax關(guān)系不大……
投資回報(bào)(Return on Investment)
作者認(rèn)為ajax能夠提升應(yīng)用程序的可用性,但是富客戶端程序并不會(huì)比純html版本好多少……忽略這個(gè)觀點(diǎn),來(lái)人,把作者拖出去,賬責(zé)五十
拙劣地模仿瀏覽器頁(yè)面跳轉(zhuǎn)行為(Mimicing browser page navigation behavior imperfectly)
……忽略,沒(méi)看到作者所描述的情況。
分享:AJAX、AJAX實(shí)例及AJAX源代碼(asp)AJAX介紹 AJAX 關(guān)鍵詞: JavaScript腳本和可擴(kuò)展標(biāo)記語(yǔ)言(XML) WEB瀏覽器技術(shù) 開(kāi)放式WEB標(biāo)準(zhǔn) 瀏覽器以及獨(dú)立平臺(tái) 更好更快的網(wǎng)絡(luò)應(yīng)用程序 XML以及HTTP請(qǐng)求 AJAX = 異步JavaScript和可擴(kuò)展標(biāo)記語(yǔ)言 AJAX是一種運(yùn)用JavaScript和可擴(kuò)展標(biāo)記語(yǔ)言(XML),在網(wǎng)絡(luò)瀏覽
- Ajax中瀏覽器的緩存問(wèn)題解決方法
- AJAX和WebService實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)具體代碼
- ajax 登錄功能簡(jiǎn)單實(shí)現(xiàn)(未連接數(shù)據(jù)庫(kù))
- AJAX和WebService實(shí)現(xiàn)郵箱驗(yàn)證(無(wú)刷新驗(yàn)證郵件地址是否合法)
- AJAX和三層架構(gòu)實(shí)現(xiàn)分頁(yè)功能具體思路及代碼
- 使用AJAX返回WebService里的集合具體實(shí)現(xiàn)
- AJAX獲取服務(wù)器當(dāng)前時(shí)間及時(shí)間格式輸出處理
- ajax傳遞多個(gè)參數(shù)具體實(shí)現(xiàn)
- ajax傳遞一個(gè)參數(shù)具體實(shí)現(xiàn)
- 滑輪滾動(dòng)到頁(yè)面底部ajax加載數(shù)據(jù)配合jsonp實(shí)現(xiàn)探討
- jQery ajax——load()方法示例介紹
- jQuery+Ajax實(shí)現(xiàn)表格數(shù)據(jù)不同列標(biāo)題排序(為表格注入活力)
AJAX教程Rss訂閱編程教程搜索
AJAX教程推薦
- 剖析AJAX成為“時(shí)尚”的十大主要理由
- AJAX實(shí)例 自動(dòng)保存草稿
- AJAX與數(shù)據(jù)島實(shí)現(xiàn)無(wú)刷新綁定
- jQuery Ajax使用心得詳細(xì)整理及注意事項(xiàng)
- AJAX入門(mén)--概述XMLHttpRequest
- 細(xì)說(shuō)循序漸進(jìn)學(xué)習(xí)Ajax的途徑
- 雙劍合璧 Ajax和RSS做個(gè)人門(mén)戶網(wǎng)站
- AJAX和WebService實(shí)現(xiàn)郵箱驗(yàn)證(無(wú)刷新驗(yàn)證郵件地址是否合法)
- AJAX中JavaScript支持面向?qū)ο蟮幕A(chǔ)
- AJAX如何處理書(shū)簽和后退按鈕
猜你也喜歡看這些
- 淺析AJAX中JavaScript類(lèi)的三種成員
- JQuery的ajax的用法在asp中使用$.ajax()實(shí)現(xiàn)
- 使用AJAX技術(shù)實(shí)現(xiàn)網(wǎng)頁(yè)無(wú)閃自動(dòng)局部刷新
- xmlHttpRequest實(shí)踐之無(wú)刷新驗(yàn)證用戶名
- 那些年,我還在學(xué)習(xí)Ajax 學(xué)習(xí)筆記
- AJAX中JavaScript支持面向?qū)ο蟮幕A(chǔ)
- 解讀jsp+ajax自動(dòng)刷新實(shí)例
- AJAX獲取服務(wù)器當(dāng)前時(shí)間及時(shí)間格式輸出處理
- 如何深入理解JavaScript中的函數(shù)
- 用AJAX解決一些常見(jiàn)問(wèn)題
- 相關(guān)鏈接:
- 教程說(shuō)明:
AJAX教程-淺談Ajax的缺點(diǎn)
。