AJAX 在中文社区的“集体信仰动摇”?!
最近好像在中文社區(qū)又多了關(guān)于AJAX的討論,很多都是說AJAX僅僅是過渡技術(shù),又或者說AJAX現(xiàn)在有些濫用了,反正就好像一場狂熱下來大家又成了懷疑論者了。
Microsoft Expression
看起來最震撼的事情應(yīng)該是Microsoft Expression系列被越來越多人知道,很多人都在想WPF在如此強大的設(shè)計器支持下能否干掉AJAX。首先說一下Microsoft Expression是什么,這是一個和以前的Macromedia Studio非常類似的工具集,其戰(zhàn)略目標應(yīng)該也非常類似。
以前Studio的成功在于3大產(chǎn)品為設(shè)計人員組成流水線,Fireworks設(shè)計的圖可以直接切片放入DreamWeaver使用,又會者提供給Flash作為素材,而Flash設(shè)計完后同樣可以直接插入DreamWeaver設(shè)計的網(wǎng)頁中。現(xiàn)在的Expression則分為Graphic Designer、Web Designer、Interactive Designer這3大產(chǎn)品,Graphic Designer設(shè)計的圖可以直接提供給Web Designer或Interactive Designer使用,Web Designer用于設(shè)計符合Web Standards的頁面,而Interactive Designer用于WPF的交互界面,這兩者的設(shè)計結(jié)果最終都放入Visual Studio中添加后臺代碼。
暫時看來,Web Designer和Interactive Designer是平行產(chǎn)品,也就是Web和WPF并不存在哪個更優(yōu)的說法。Web Designer已經(jīng)經(jīng)過Beta1了,估計正在進入RTM階段,所以應(yīng)該會最早發(fā)布。Expression的出現(xiàn)對于程序員來說可以說是好事情,因為在工具上就已經(jīng)給程序員和美工劃分了明確的艱險,這樣就可以避免程序員和美工互相推卸責(zé)任,界面上的互動效果說不清應(yīng)該由誰來負責(zé)。同時Web Designer是用于設(shè)計符合Web Standards的頁面的,這就要求美工不能僅僅懂繪圖和切片而不懂XHTML+CSS。
Web Designer的出現(xiàn),應(yīng)該是美工的噩夢而不是程序員的噩夢,因為終于有一個理由要強迫美工去學(xué)好Web Standards有關(guān)的技術(shù)了。以往拖著美工去看Macromedia的首頁(現(xiàn)在是Adobe的首頁),告訴他們這是符合Web Standards的門戶頁設(shè)計的頂峰之作,他們會不信。跟他們說,這并排的3個豎欄都是用嵌套<ul />方式排的,所有圓角效果、陰影效果都是CSS而不是切片,他們會說用老的方式排出來同樣的效果也沒什么不好,除了在移動設(shè)備上不好看。現(xiàn)在塞一個Web Designer給他們,界面上優(yōu)先顯示的就是CSS設(shè)計功能,讓他們設(shè)計一個Adobe那樣的首頁來,他們自然會明白技術(shù)差距之遠。
至于Interactive Designer和WPF對Web的直接威脅,暫時還是不大的,因為WPF/E才剛剛開始CTP,其適用范圍還很有限,比AJAX的支持范圍要窄多了。現(xiàn)在AJAX在主流的PC瀏覽器上都已經(jīng)實現(xiàn),并且Opera和Nokia也正在實現(xiàn)AJAX在移動設(shè)備上的支持。WPF/E的真正對手是Flash,Macromedia鼓吹了那么多年的RIA都沒多少人響應(yīng),Flex也不好賣,再殺進來一個WPF/E逼到Flex 2要賤賣了。但就算對Flash來說,WPF/E其實只算得上一個未來的對手,因為它現(xiàn)在仍顯得過于“貴族化”——只有花得起錢享受XP/Vista/MacOSX級別界面的用戶才有資格享受WPF/E,相對來說Flash則已經(jīng)算是個“草根明星”了。
AJAX濫用
說到濫用,我們必須承認我們確實濫用了,而且問題還很嚴重。說到底這是因為我們在為技術(shù)而技術(shù),很多場合程序員說了算,而國內(nèi)程序員的界面設(shè)計能力還有待提高。
首先錯誤來自大家對AJAX使用上的本末倒置,我們看到AJAX通過減少刷新來達到改善用戶體驗的效果,所以我們開始追求無刷新,而最終變成了技術(shù)服務(wù)于無刷新,而功能服務(wù)于技術(shù),這正所謂之本末倒置。而實際上,應(yīng)該是來自界面上的需求推動了AJAX的發(fā)展,只有當界面需要避免刷新時才使用AJAX。
在這方面,我也不是專家,所以只能建議大家多去看看《About Face 2.0》之類的界面設(shè)計書籍,先學(xué)習(xí)如何設(shè)計界面,再學(xué)習(xí)如何在界面上使用AJAX。簡單來說,不刷新是為了不打斷用戶的思維,讓用戶連貫性的完成一系列的操作,不需要每次都等待白屏過去然后重新滾動到他操作的位置。然而這是提高用戶的好體驗的一方面,同時我們還需要降低用戶的壞體驗。最壞的情況是用戶在網(wǎng)站上受了挫折(frustrated)而離開,例如導(dǎo)航無法讓他去到正確的位置或者讓他獲取到所需的信息,又例如用戶更改輸入提交了幾次但每次都有新的提示告訴用戶不符合某某輸入規(guī)則。
AJAX給了機會我們更好的避免這些問題,例如通過AutoComplete獲得更佳的搜索導(dǎo)航效果,或者異步的Validation盡早通知用戶輸入所需要符合的規(guī)則及如何更改去符合這些規(guī)則。然而除此之外還有很多其他更好的設(shè)計。在我們忙碌著做一個AJAX式的彈出日歷式日期選擇控件,國外的Calendar服務(wù)則已經(jīng)提供了更好的輸入方式——它們能夠直接識別"Tomorrow 7:00pm dinner with Kathy at home"或"2nd anniversary on Oct 5th."這樣的純文本輸入,然后自動從中提取出事件的時間、地點、人物、主題等信息。
現(xiàn)在我們將AJAX的底層技術(shù)拿出來作學(xué)院式研究沒什么不好,但如果你要做的是一個面向最終用戶的產(chǎn)品,那在設(shè)計時就應(yīng)該先將AJAX放一邊,優(yōu)先考慮的是用戶角色以及他們的需求,如果他們的需求包括到AJAX就把AJAX放上日程,否則就不要管AJAX。國外很多網(wǎng)站的AJAX使用都非常恰當,例如BaseCamp,用戶需要連續(xù)執(zhí)行的操作(例如添加多個todo或者將多個todo標記為完成)就提供AJAX支持,這樣用戶的思路不會被打斷,但是無上下文的可打斷的操作則保留整頁提交的方式。
最后,如果你希望繼續(xù)關(guān)注我的文章,歡迎訂閱Cat in Chinese或訂閱Cat in dotNET。
總結(jié)
以上是生活随笔為你收集整理的AJAX 在中文社区的“集体信仰动摇”?!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 页面布局 HTML 4.0 Transi
- 下一篇: 让Windows 2000/XP系统自动