Ajax適用情境
1.表單驅動的互動
傳統的表單提交,在文字框輸入內容後,點擊按鈕,幕後處理完畢後,頁面重新整理,再回頭檢查是否重新整理結果正確。使用Ajax,在點擊sunmit按鈕後,立刻進行非同步處理,並在頁面上快速顯示了更新後的結果,這裡沒有整個頁面重新整理的問題。
2.深層次的樹的導航
深層次的串聯功能表(樹)的遍曆是一項非常複雜的任務,使用JavaScript來控制顯示邏輯,使用Ajax消極式載入更深層次的資料可以有效減輕伺服器的負擔。
我們以前的對串聯功能表的處理多數是這樣的:
為了避免每次對菜單的操作引起的重載頁面,不採用每次調用背景方式,而是一次性將串聯功能表的所有資料全部讀取出來並寫入數組,然後根據使用者的操作用JavaScript來控制它的子集項目的呈現,這樣雖然解決了操作響應速度、不重載頁面以及避免向伺服器頻繁發送請求的問題,但是如果使用者不對菜單進行操作或只對菜單中的一部分進行操作的話,那讀取的資料中的一部分就會成為冗餘資料而浪費使用者的資源,特別是在菜單結構複雜、資料量大的情況下(比如菜單有很多級、每一級菜又有上百個項目),這種弊端就更為突出。
如果在此案中應用Ajax後,結果就會有所改觀:
在初始化頁面時我們唯讀出它的第一級的所有資料並顯示,在使用者操作一級菜單其中一項時,會通過Ajax向後台請求當前一級項目所屬的二級子功能表的所有資料,如果再繼續請求已經呈現的二級菜單中的一項時,再向後面請求所操作二級功能表項目對應的所有三級菜單的所有資料,以此類推……這樣,用什麼就取什麼、用多少就取多少,就不會有資料的冗餘和浪費,減少了資料下載總量,而且更新頁面時不用重載全部內容,只更新需要更新的那部分即可,相對於幕後處理並重載的方式縮短了使用者等待時間,也把對資源的浪費降到最低。
3.快速的使用者與使用者間的交流響應
在眾多人蔘與的交流討論的情境下,最不爽的事情就是讓使用者一遍又一遍重新整理頁面以便知道是否有新的討論出現。新的回複應該以最快的速度顯示出來,而把使用者從分神的重新整理中解脫出來,Ajax是最好的選擇。
4.類似投票、yes/no等無關痛癢的情境
對於類似這樣的情境中,如果提交過程需要達到40秒,很多的使用者就會直接忽略過去而不會參與,但是Ajax可以把時間控制在1秒之內,從而更多的使用者會加入進來。