4. 「等待」,使用者一輩子的仇人。
沒有人願意等待,一個男人讓女人等太久了,就只有分手一途。使用者與網站的互動也是同樣的道理,然而現在網路頻寬飛快地提升,也無法讓使用者不等待。古老的網頁等待標準是「30秒」(據說,女人等男人的年限是30歲),一個超過了三十秒沒有出現完整的頁面,則視為「反應遲鈍」,是屬於嚴重的「逆向刺激」。
但是,30秒的測試標準是將近十年前訂出來的,那時網際網路剛起步,大家都還在用14400 modem上網,而現在哩?標準沒進步,同樣是「30秒」,但是使用者的要求可不同了!
由於頻寬的進步,以往使用者以文字為主的使用習慣,有一部份轉向了影音媒體的取得。然而,影音這樣的東西很單純,使用者早已了解影音的資料量很龐大,就算讓他們多等一下,他們也還稍稍可以安撫,但若改為呈現文字類型的資訊,網頁使用者的對於等待的態度,就像那紅衫軍等待陳水扁下台一般,只會越來越不耐。最後憤而採取激進的手法,「狂按reload鍵」。於是,你的伺服器負擔因為 reload 而加重,開始連帶拖慢了其他使用者的需求 (request) 與回應 (response)。結果你的網頁點擊數遽增,但沒有一位使用者能看完你的網頁。
但很不幸的,只要是 client-server 架構底下,你就很難不去避免這樣的狀況發生。你必須改善效能以給給使用者正向的刺激,有兩種選擇:
a. 減少reload時的頁面重複資料,降低必須資料的傳輸量。
b. 增加使用者電腦運算的機會,減低伺服器運算的負擔。
這兩個總和起來,可用最近頗熱門的話題來解決;沒錯!就是「Ajax」。
利用Ajax,你可以在將使用者欲取得的資料以最低限度由伺服器輸出,再利用JavaScript與CSS加工嵌入或取代你的頁面。也可以在使用者點擊滑鼠或是在鍵盤輸入字元時及時反應預先取得 (fetch) 使用者可能想要的資料,增加使用者與你網頁的互動性,使操作手感就像是操作本機軟體一樣順手。這一切一切的好處,已經有許多文章以及書籍介紹,所以這邊就不再贅述。
然而,請注意!Ajax 並不會讓你的伺服器因此更空閒,相對的,Ajax 反而會使你的伺服器更為忙碌。但對於使用者而言,由於資料被分散取得,伺服器對於資料處理所需的時間縮短,使用者感覺平均等待的變少了,但實際上累積起來的時間,並不會比未使用 Ajax時少多少,有時反而會更多。這就是使用者心理。就像是少量多餐,與一般飲食可能攝取的熱可能並無二置,但少量多餐的人就是能感到隨時都被滿足。因此慢慢減低了自己吸收的熱量而不自知一般。
若你做到了這點,恭喜你!你讓你的網頁使用者少吸收了一些不需要的熱量(畫面 reload 的重複部分),但你開始必須要改善你的網頁效能了。若你是使用比較舊式的網頁語言撰寫你的網頁程式,這邊良心建議你開始換些執行效率高些的方式來建構你的非同步伺服器端程式模組。你可以不用JSP/Servlets,也許你偏好.NET Framework,然而這都不重要,只要盡可能的縮短你程式回應時間就對了。
請記得,「網頁的停滯就像是性冷感,沒人會喜歡」。寧可讓使用者刺激到昏厥,也別讓使用者因為你伺服器的冷感而離你而去。
以上四點,對有經驗的網頁設計者而言,說不定沒有搔到癢處,坊間有許多關於網頁設計的好書可以參考,建議找些再版的彩色書,還頗值得一看的!。這系列文章就在這邊結束了,如有什麼建議與批評,請不吝指教。
Subscribe to:
Post Comments (Atom)
[遊記] 香港三天兩夜
在五月初起意找時間離開台灣去流浪,連續三年無視了公司的員工旅遊補助,今年終於給了自己動力離開台灣三天兩夜出去走走,即使目的地只是航程不到兩小時的香港。 決定了日期,向公司請好了休假,接下來就是要決定交通住宿,由於想要自己決定出發以及回來時間,方便起見捨棄了可能有特定優惠的機...

-
週日早上趁著還有陽光,帶著相機朝著陽明山出發。尋著北投後山泉源路往上,在不斷的左轉之後,每次都在最後關頭右轉東昇路進入陽明山國家公園的我,第一次踏上了「 登山路 」。延著「登山小棧」(這其實是店名)的提示往上走,到達最上頭的停車場之後,便可下車開始繼續由登山步道健行而上。 今...
-
有隻小小的花貓,就稱她叫做阿喵吧! 阿喵住在一間很普通很普通的公寓,與主人在一起。 阿喵喜歡黏在主人身邊,尤其當主人坐在桌前讀著書時,阿喵總是迫不及待地蜷伏在主人的腿上。 當主人出門時,阿喵也總是安靜悠閒地睡在桌前的椅子上,等著主人回家。 這隻小小花貓的主人,就姑且稱他為...
-
程式設計,最讓我著迷的是那種從無到有的那種「純粹」。我用這目前所擁有的所有知識與經驗,賦予了這個孩子為人所不能的優點,同時也賦予了一些不可為的缺憾,但我卻可以在我靈光乍現的時刻,將缺憾從程式的生命中抽離,這種種「純粹」,是一種程式設計師自身生命的體現。 程式設計的過程...
No comments:
Post a Comment
有什麼想說的嗎?