必須用到和不必使用ajax的地方
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
現(xiàn)在距離gmail改變了大家對(duì)使用網(wǎng)頁(yè)應(yīng)用程序的方式已經(jīng)有一年多了。但是目前很多網(wǎng)頁(yè)應(yīng)用程序并沒有使用充滿活力的Ajax的優(yōu)勢(shì)來代替以前沉悶的html功能。
下面是當(dāng)前網(wǎng)頁(yè)應(yīng)用程序應(yīng)該出現(xiàn)的地方: ·基于表單的交互 表單是很慢的,非常慢。嘗試編輯位于del.icio.us上面的一個(gè)書簽?點(diǎn)擊編輯鏈接打開一個(gè)編輯書簽的表單頁(yè)面,然后編輯你的內(nèi)容并點(diǎn)擊提交按鈕等待整個(gè)提交過程結(jié)束,最后返回上一頁(yè)并向下滾動(dòng)到你剛才編輯的書簽?zāi)抢锊榭磧?nèi)容是否已經(jīng)正確更改。那AJAX呢?點(diǎn)擊編輯鏈接馬上開始更改標(biāo)簽內(nèi)容,點(diǎn)擊提交按鈕開始異步傳輸標(biāo)簽編輯的內(nèi)容并立即看到更改后的內(nèi)容而無需重載整個(gè)頁(yè)面。 ·深層樹狀導(dǎo)航 總而言之,帶有深層樹狀導(dǎo)航的應(yīng)用程序通常是一個(gè)噩夢(mèng)。在大多數(shù)情況中簡(jiǎn)單平直的拓?fù)浣Y(jié)構(gòu)以及搜索/標(biāo)記可以很好的工作。但是如果一個(gè)應(yīng)用程序真正使用深層樹狀導(dǎo)航,使用JavaScript來管理拓?fù)鋟i(user interface用戶接口),則使用Ajax懶加載深層數(shù)據(jù)可以降低服務(wù)器的負(fù)載。舉例來說,為了閱讀一個(gè)只有一行的結(jié)果來加載整個(gè)一個(gè)新頁(yè)面是非常耗時(shí)的。 ·實(shí)時(shí)用戶對(duì)用戶通訊 在一個(gè)允許用戶創(chuàng)建實(shí)時(shí)討論的信息公告系統(tǒng)中,迫使用戶一次又一次的更新完頁(yè)面看到答復(fù)是非常愚蠢的?;貜?fù)應(yīng)該是實(shí)時(shí)的,用戶不應(yīng)被迫總是去癡迷于刷新操作。即使是gmail這個(gè)已經(jīng)對(duì)以前像hotmail/yahoo mail的收件箱刷新,刷新收件箱標(biāo)記的操作有所改進(jìn),也并沒有充分的使用Ajax的功能來提示有新郵件到達(dá)。 ·投票、是否選擇、等級(jí)評(píng)價(jià) 如果Ajax提交過程沒有一個(gè)協(xié)調(diào)的UI提示是非常糟糕的,通過使用Ajax來提交一個(gè)調(diào)查或是否選擇可以減少提交過程等待的痛苦。通過減少點(diǎn)擊的等待時(shí)間,Ajax應(yīng)用程序變得越來越有交互性-如果要用40秒來提交一個(gè)投票,除非非常在意的話大多數(shù)人會(huì)選擇放棄。如果只花1秒呢,非常大比例的人會(huì)樂于參加投票的。(我在Netflix versus有2008張電影投票在IMDb.com有210張電影投票) ·過濾和復(fù)雜數(shù)據(jù)操作 應(yīng)用一個(gè)過濾、按日期排序、按日期和姓名排序、打開或關(guān)閉過濾器等等。任何一種高交換型操作應(yīng)該交給JavaScript來處理而不是通過向服務(wù)器來提交一系列的請(qǐng)求。在查找或者操作大量數(shù)據(jù)的時(shí)候帶來的視圖上的改變最多不會(huì)超過30秒,Ajax真的使這些操作加速了。 ·普通錄入時(shí)的提示/自動(dòng)補(bǔ)齊 一些軟件/JavaScript是擅長(zhǎng)于幫助用戶完成鍵入相同的文字或可以預(yù)測(cè)的文字的工作的。在del.icio.us 和 Gmail 中該功能是非常有益的,可以用來快速增加標(biāo)記/email等。 對(duì)于一個(gè)頻繁使用的應(yīng)用程序諸如網(wǎng)頁(yè)郵件客戶端或博客閱讀器來說,用戶有充足的時(shí)間來學(xué)習(xí)如何使用新的UI概念但是他們卻無法接受一個(gè)非常緩慢的反應(yīng)速度。這種應(yīng)用為Ajax變的更加普及起到了一個(gè)完美的杠桿作用。隨著用戶使用頻率的增加,更多的Ajax部件應(yīng)該加強(qiáng)用戶的使用體驗(yàn)。 但是對(duì)于網(wǎng)頁(yè)應(yīng)用程序來說,把每件事甚至任何事都用JavaScript來實(shí)現(xiàn)也是沒有意義的。Ajax只是針對(duì)一些特定的環(huán)境才能帶來顯著的幫助。在Ajax出現(xiàn)之前網(wǎng)頁(yè)應(yīng)用程序已經(jīng)可以工作的很好了并且目前在網(wǎng)頁(yè)開發(fā)中Ajax還存在著許多的缺陷和缺點(diǎn)。就算不從服務(wù)器端取得一個(gè)異步的信息 數(shù)據(jù)流一個(gè)平直的html網(wǎng)頁(yè)日志也可以工作的很好。對(duì)于文檔或文檔之間的跳轉(zhuǎn)來說,老舊的純HTML仍然是最好的選擇。簡(jiǎn)單或很少使用的應(yīng)用程序就算不用JavaScript同樣可以很好的工作。 下面是一些不應(yīng)該用到Ajax的地方: ·簡(jiǎn)單的表單 就算表單是Ajax技術(shù)的最大受益人,一個(gè)簡(jiǎn)單內(nèi)容的表單,或提交訂貨單,或一次性的很少用到的表單都不應(yīng)該使用以Ajax驅(qū)動(dòng)的表單提交機(jī)制??偟膩碚f,如果一個(gè)表單不是很長(zhǎng)用,或已經(jīng)工作的很好,那么就算使用Ajax也沒有什么幫助。 ·搜索 實(shí)時(shí)搜索帶來的痛苦要遠(yuǎn)大于他帶來的幫助。這就是為什么Google Suggest還處于beta測(cè)試而并沒有放在主頁(yè)上的原因。在Start.com Live.com上搜索的時(shí)候你是不能使用返回按鈕來查看上一次搜索或返回上一頁(yè)的?;蛟S還沒有人來完成這項(xiàng)工作,但是完成這個(gè)工作應(yīng)該是很困難的至少是不太明知的或者會(huì)因此帶來更多的麻煩。(譯注:現(xiàn)在已經(jīng)有很多開源的框架可以實(shí)現(xiàn)歷史記錄功能) ·基本導(dǎo)航 總的來說,使用Ajax為一個(gè)基礎(chǔ)的網(wǎng)站/程序做導(dǎo)航是一個(gè)可怕的念頭。誰(shuí)會(huì)把用來使自己的程序變的更好的時(shí)間花在編寫代碼模仿瀏覽器的行為上面?在基礎(chǔ)頁(yè)面中導(dǎo)航的操作中JavaScript是沒有用的。 ·替換大量的信息 Ajax可以不用整頁(yè)刷新來動(dòng)態(tài)更新頁(yè)面中改變的一小部分。但是如果一頁(yè)上的大部分內(nèi)容都需要更新,那為什么不從服務(wù)器那里獲得一個(gè)新頁(yè)面呢? ·顯示操作 雖然看上去Ajax是一個(gè)純UI技術(shù),其實(shí)不是這樣的。他實(shí)際上是一個(gè)數(shù)據(jù)同步、操作、傳輸?shù)募夹g(shù)。要想得到一個(gè)穩(wěn)定的干凈的網(wǎng)頁(yè)程序,不使用Ajax/JavaScript來直接完成用戶接口是明智的。JavaScript可以分散分布并簡(jiǎn)單的操作XHTML/HTML DOM,根據(jù)CSS規(guī)則來決定如何讓UI顯示數(shù)據(jù)。查看這里(http://www.sourcelabs.com/blogs/ajb/2005/08/powering_javascript_ui_with_cs.html)來查看如何使用CSS來替代JavaScript來控制數(shù)據(jù)的顯示。 ·無用的網(wǎng)頁(yè)小部件 滑塊選擇控件、拖拽控件、彈性控件(此處原文為bouncies,不知指為何物?)、鼠標(biāo)樣式、天氣預(yù)報(bào)控件,這些小部件應(yīng)該可以被更直接的控件代替或者為了整潔干脆整個(gè)去掉。為了選擇一種顏色,也許滑塊選擇控件可以選擇一個(gè)正確的陰影顏色,但是在一個(gè)商店中選擇一個(gè)價(jià)格,使用滑塊選擇控件選到分這個(gè)單位對(duì)于用戶來說有點(diǎn)過分。 該文章在 2011/3/11 15:55:52 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |