AJAX bandwagon是個好去處。它帶給你更快、更高效、更強動態的應用。但它也有自身的缺陷。
初一看,具備一些常識似乎就能避免這些缺陷,在一定程度上,的確如此。但從DHTML起源來看,AJAX應用程序充滿了結構性差異。不論你在應用程序開發工作中掌握了多少常識,從別人犯的錯誤中吸取教訓也是有好處的。我們稱這些錯誤為“七宗死罪”,但它們不能代表全部的錯誤。
事實上,在你犯這些致命過失之前,你可能首先犯了一些較輕的錯誤。因此我們從這里著手。這是每個人都可能犯的錯誤。這些錯誤是多么普遍,通過Google搜索一下,你就可以發現大部分的錯誤。
七宗輕罪
1.濫用Back按鈕—這是每個人都會犯的錯誤。Back按鈕在很多網頁程序中已經成為用戶的期望。很多AJAX研發新手在開發AJAX應用程序時,出于多種原因都敏捷地使用著Back按鈕。首先,JavaScript對于它來說不是最友好的語言;其次,AJAX設計中需要一種全新的思考方式。
對于AJAX 研發新手“后退”顯然不是最好的選擇?!昂笸恕笔且环N你更新頁面,或更常見的,你需要在特定情況下進行“撤銷”時才用到的功能。在進行編碼前應認識到這些,或者你可能重復做功。
2.忘記告訴用戶當前發生的狀況—AJAX工作原理中的一部分是其不使用常規的網頁用戶界面加載程序。因此,你需要明確設計一些可視的提示,使用戶了解正在發生的狀況。
3.忽視鏈接—這也是AJAX的標準失誤:漏做了程序外部用戶可以剪貼的URL鏈接。我們都曾經多少次復制過URL鏈接然后將其發送給別人?當你在使用AJAX 時,提供給你的用戶有用URL鏈接的唯一方法是,手動提供給他們。為什么?因為在AJAX程序中,服務器不提供JavaScript動態生成的這個頁面!不要忽視你的用戶可能感興趣的這個網絡應用中最普通的功能。既然服務器不支持,那你花點功夫為用戶提供URLs。
4.用內容控制替代控制—如果你正在尋找動態的內容控制,那么對傳統的客戶服務器交互作用的突破對你來說可是件好事。但這也是一項罪過:在重寫一個頁面的某精確位置上的內容以調整用戶的交互式體驗時確實確實能夠很好的控制,但這也將使你的頁面不完整。通常,我們專注于處理頁面的某一部分,而忘記服務器不刷新頁面。這會導致頁面凌亂,用戶體驗降低,當他們察看頁面時可能看到過時的頁面!把你的注意力放在整個頁面; 確保出現動態頁面的內容都得到更新。
5.累死蜘蛛 –AJAX的優勢在于無需重裝就可以提供給頁面的大量的文本;AJAX的缺陷在于無需重裝就可以提供給頁面的大量的文本。如果應用被設置為對搜索引擎友好,那么,你能夠想象會出現什么情況。無論頁面中出現了什么,請務必在最上面植入足夠穩定的文本,為蜘蛛們去玩耍吧。
產生亂碼文本—AJAX不支持很多字符集。這不是涉及生死的局限性,但忘記它能夠產生真的問題。最基本的字符集是UTF-8。不論JavaScript發送什么,別忘記正確地編碼,并且根據內容設置服務器端的字符集。
沒有為使用不支持JavaScript的瀏覽器的用戶提供提示--有些瀏覽器不支持JavaScript,用戶一時不能明白出了什么狀況。請給他們提供提示。
實話實說,其中大部分是常識性問題。真正的問題都很容易讓人忽視的。
原文轉自:http://www.anti-gravitydesign.com