首頁  >  文章  >  web前端  >  ajax的適用場景有哪些? ajax的不適用場景有哪些?

ajax的適用場景有哪些? ajax的不適用場景有哪些?

寻∝梦
寻∝梦原創
2018-09-10 16:11:111433瀏覽

這篇文章主要的向大家介紹了關於ajax的使用場景和ajax的不適用場景,讓我們知道ajax到底該在什麼地方用。現在我們來一起看這篇文章吧

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

  6.普通的文字輸入提示與自動完成的場景 
  在文字方塊等輸入表單中給予輸入提示,或自動完成,可以有效的改善使用者體驗,尤其是那些自動完成的資料可能來自於伺服器端的場合,Ajax是很好的選擇。
 Ajax不適用場景 
  1.部分簡單的表單 
  雖然表單提交可以從Ajax獲得最大的益處,但一個簡單的評論表單極少能從Ajax得到什麼明顯的改善。而一些較少用到的表單提交,Ajax則幫不上忙。
  2.搜尋 
  有些使用了Ajax的搜尋引擎如Start.com和Live.com不允許使用瀏覽器的後退按鈕來查看前一次搜尋的結果,這對已經養成搜尋習慣的用戶來說是不可原諒的。 
  現在Dojo透過iframe來解決這個問題。
  3.基本的導航 
#  使用Ajax來做網站內的導覽是一個壞主意,為什麼不把時間放在讓系統程式作的更好上呢?
  4.取代大量的文字 
#  使用Ajax可以實現頁面的局部刷新,但是如果頁面的每個部分都改變了,為什麼不重新做一次伺服器請求呢?
  5.對呈現的操縱 
#  Ajax看起來像是純粹的UI技術,但事實上它不是。它實際上是一個資料同步、操縱和傳輸的技術。對於可維護的乾淨的web應用,不使用Ajax來控制頁面呈現是一個不錯的主意。 JavaScript可以很簡單的處理XHMTL/HTML/DOM,使用CSS規則可以很好的表達資料顯示。 

  存在的問題 
  1.用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是讓人頭痛的事; 

## 2.Ajax的無刷新重載,由於頁面的變化沒有刷新重載那麼明顯,所以容易給用戶帶來困擾?D?D用戶不太清楚現在的數據是新的還是已經更新過的;現有的解決有:在相關位置提示、資料更新的區域設計得比較明顯、資料更新後給使用者提示等;   3.中間過程不能被bookmark。解決方法:GoogleMaps透過在頁面上提供一個”link to this page」的辦法來解決。另外,也可以透過url連結中加無效的?^標記來解決,但還未驗證。我覺得ibm開發者論壇中有個老大不記得什麼名字了說的不錯 跟j2ee的現有成熟表現層框架結合使用是比較好的一個選擇。因需而用不會給自己斷掉很多後路。一味的嘗試或許就有苦果等待、誘惑、刺激、引導你失去理智。         這篇文章到這就結束了(想看更多就到PHP中文網

AJAX使用手冊###欄位中學習),有問題的可以在下方留言提問。 ###

以上是ajax的適用場景有哪些? ajax的不適用場景有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn