Scott Robinson‧郭文興譯 2007/03/12
最近大家都搶著進入AJAX的行列。因為這個技術讓你可以製造更快、更有效率、同時更為動態的程式。然而它本身也有一些問題。
起初,這些問題多少可以透過簡單的常識來避免。但AJAX程式與它的前身DHTML之間,還是充滿許多結構上的不同。
不管你對佈署應用程式有多少知識,還是需要不斷從發生過的錯誤中學習。我們把這些錯誤稱為七個原罪,然而它不是這篇文章的全部內容。
因為在你犯下任何一項嚴重錯誤之前,很可能就會先犯幾個較輕的錯誤。
所以我們從這些每個人都會犯的較輕錯誤開始講起。這些錯誤十分常見,你只要隨便上Google搜尋就可以找到大部分的錯誤。
七項輕罪
上一頁按鈕的誤用-這是每個人都可能犯的錯。上一頁按鈕已經變在使用者在各類網頁應用上都期待要有的東西。許多AJAX的新手會從AJAX設計程式上直接拖拉一個上一頁按鈕到程式裡,結果是不能用。這有幾個原因。首先,JavaScript並不是十分適合這樣作的程式語言;其次,AJAX的設計思維比較新。
AJAX開發新手不見得都了解到,使用「上頁」按鈕不見得最好。「上一頁」是你在更新頁面,或要在事件上進行「復原」動作時需要的功能。在你寫之前請先徹底思考過,否則恐怕就要重寫一次。
不告訴使用者發生什麼事-AJAX的好處之一是它在載入時不使用傳統的網頁使用者介面。所以你必須額外設計一些視覺指示,讓使用者知道發生了什麼事。
忽略連結-這是另個AJAX可能發生的標準錯誤:忽略可以被拷貝貼在程式之外的網址。你自己應該也常複製網頁上的網址然後寄給別人吧?當你使用AJAX技術時,讓使用者可以剪貼網址的唯一辦法就是手動提供這個功能。為什麼呢?因為在一個AJAX程式裡,伺服器不提供網頁: 網頁由JavaScript動態產生!所以請不要忽略使用者的潛在需要,因為對一般網頁來說這是最常見的功能。請自己花力氣提供網址,因為伺服器不會作這件事。
使用內容控制來取代頁面控制-如果你希望提供動態的內容控制,那AJAX打破傳統的客戶-伺服端架構是一個絕佳的功能。但它同時也會是個詛咒:重寫頁面的特定區域,來調整使用者的互動模式,絕對有所助益,但這也讓你見樹不見林。
我們往往會關注於網頁特定的區塊,而忘記整個網頁不會隨之被伺服器更新。在螢幕上陳舊的資訊可能會讓網頁四分五裂,或讓使用者困惑。請把你的注意放在整個頁面上;並確定任何動態內容的改變,能讓使用者看到的部分都有被更新。
把spider拒於門外-AJAX的好處是,你可以在不需要重新讀取的情況下,把一大堆文字貼到頁面上。而這同時也是它的壞處。如果這個應用希望相容於搜尋引擎--呃,結果會怎樣你可以自己想像。不管這個網頁怎麼變化更動,請放幾個固定的文字在網頁上方,讓搜尋引擎的spider可以處理。
產生亂碼-AJAX支援的字元碼並不多。這雖然不是極關重要,但忘記這件事的確會造成問題。程式基本的字元組是UTF-8。不管JavaScript傳送什麼,請不要忘記將其正確編碼,同時記得在伺服器端設定內容的編碼。
讓不支援JavaScript的使用者無所適從-市面上有些瀏覽器不支援JavaScript,但使用這些瀏覽器的人不會知道這代表什麼意思。請記得要提供資訊給這些使用者。
老實說大多時候這些是常識問題。但問題的發生往往是在情況沒那麼顯而易見的時候。(未完,明日會繼續刊登「AJAX的七項致命原罪」)
轉貼於 http://taiwan.cnet.com/enterprise/technology/0,2000062852,20115721,00.htm
沒有留言:
張貼留言