2011-06-21 28 views
0

我意識到,我的許多過去的項目遭受「太多ajax」。我寫了幾乎所有的內聯網「商業」類型的應用程序,以便更舊的瀏覽器/禁用javascript /等的可訪問性從來沒有真正成爲我的問題。但是像無法書籤/回去/隨機錯誤/超時,用戶沒有看到(我知道有這方面的解決方法,但只是一個例子)......並且大部分開發時間是更長的時間(對我來說是個大問題,我是唯一的開發者),看起來不是很多。asp mvc適當的ajax使用

從人們的經驗 - 什麼時候在商業應用/主要CRUD類型網站中使用ajax是否合適?

以此爲例:我有一個顯示所有註冊用戶的網格。其中一個按鈕可讓您進入編輯/詳情視圖,您可以在其中編輯所有信息並查看未在網格上顯示的更多信息。你可以點擊「保存」ajax請求並返回成功消息或模型狀態,並將錯誤轉換爲JSON,並顯示在「保存」按鈕上方的消息中(用一堆解析結果的jquery)all沒有頁面刷新很好。我有許多類似這樣的屏幕。如果跳過所有ajax/json/etc,點擊併成功(在頂部有某種「flash消息」,表示保存成功),跳過所有ajax/json/etc後,重新導向到顯示所有用戶的網格會更有意義嗎?作爲開發者。我很難想象對最終用戶最有意義的是什麼,但只是做一個重定向會簡單得多,對我來說很合理。人們在這些場景中的經歷是什麼?

回答

1

在這種情況下,我會一起避免AJAX,除非您有特定的原因。部分頁面更新,保持用戶在頁面上的位置或其他原因。

MVC處理您描述得非常好的場景,包括成功/失敗消息。在這個「編輯」失敗案例中,您將檢測到故障服務器端,並使用模型狀態信息將相同的編輯視圖返回給用戶。他們的所有字段都將保持填充狀態,您可以輕鬆地顯示驗證消息。在成功的一面,你將返回你的列表或索引視圖,並可能使用TempData向用戶顯示一條消息,指出他們的成功編輯。一個小的JavaScript來調動起來,並在10秒左右後刪除消息,用戶體驗非常好。

當您添加客戶端驗證時,這會更好,這在MVC3中更容易。

我想你可以在這種情況下爲用戶創建一個非常直觀的體驗,並避免ajax/json在一起。我都這樣做,但我確信在開始編寫客戶端ajax代碼之前我有一個合法的原因。

看看史蒂夫桑德森MVC的書籍。正如你所描述的那樣,他詳細地描述了這個場景。他的MVC3書還沒有出來,我沒有閱讀MVC2書,但最初的MVC書有它。

http://www.amazon.com/ASP-NET-Framework-Experts-Voice-NET/dp/1430228865/ref=sr_1_4?ie=UTF8&qid=1308745293&sr=8-4

我也很喜歡PluralSight在線訓練的時候我正在尋找這樣的基本框架指導。 http://www.pluralsight-training.net/microsoft/

當然有很多免費的博客,不包括那些涵蓋MVC也。玩的開心。

+0

+1 - 使用GET和POST請求來執行正常操作! – Fenton

+0

嗨 - 感謝您的意見。你描述的方式實際上正是我決定採取的路線。我嘗試了這兩種方式,併發布/重定向「閃光消息」的流程要比使用它更流暢。我奇怪的是,從其他人的經驗來看,ajax會在這種情況下給「最終用戶」帶來任何好處 - 我想不是。我會瀏覽一遍你再次提到的書(我得到了mvc2和mvc3的alpha)。 – maciek

1

在我的應用程序中,我必須從用戶那裏獲取大部分主要業務實體(Employeee,Distributor等)的數據,我通常採用普通表單發佈的路由而不是將表單形式化。大多數情況下,當我要發佈的數據很小時,我使用ajax,並且我必須在保存後在同一頁上顯示數據。例如,在Employees視圖頁上,您可以使用一些表單爲員工添加體驗,並且可以通過ajax保存它並將輸入的數據追加回同一頁面。
以Stackoverflow爲例。他們使用標準表單發佈來保存答案和問題,但是當涉及到數據量較小且評論必須添加到同一頁面的評論時,在這種情況下使用ajax是有意義的。
關於

+0

謝謝 - 有道理。我會承認自己是一個前面的「更新面板成癮者」,但是我後來意識到在所有地方投擲Ajax並不會最終達到最佳效果(至少在我的場景中)。 – maciek