2012-11-08 131 views
11

我們拉離服務器和,如果我們使用Struts,那麼我們就可以通過提交其MVC架構或者我們凸輪做出AJAX調用但約定是使用表單的頁面發送或者數據並提供響應,但我們也面臨着提供豐富用戶體驗的挑戰,所以我們妥協慣例並開始使用過多的AJAX,那麼我們應該如何在兩者之間實現平衡?AJAX VS表單提交

回答

15

我個人認爲AJAX應該用於顯示更新和表單提交應該通過頁面重新加載完成。推理?

提交表單時,您正在告訴應用程序執行某些操作。用戶傾向於想要完成它。當一個頁面沒有重新加載時,用戶經常會想知道「做了那個工作嗎?」。然後他們必須檢查以確定他們所做的是正確的。另一方面,例如,當您顯示圖表或其他內容,並且用戶說「顯示2011數據....現在2012數據」時,他們不會「做」某些事情(創建新實體,發送電子郵件等)。所以AJAX可以在這種情況下提供一個很好的用戶界面。頁面重新加載在這裏會很煩人。總之,我認爲表單提交應該通過頁面重新加載(讓用戶看到它的工作),而顯示更新應該使用AJAX(防止惱人的頁面重新加載)。

當然,這是一個偏好的事情。我公司的一些應用程序全部使用AJAX。但那些是最難維護和調試的應用程序。;)

+19

您可能想重新考慮您對ajax的看法。您是否想要在頁面重新加載時重新加載頁面,或者對SO進行評論?阿賈克斯做對了乾淨,優雅地降級。 (另外,還有一個過時的方面,但很重要,尤其是在移動設備方面:ajax可以節省帶寬。) – bdares

+2

我同意。我正在更多的「表單提交」,如填寫表格。如果你的變化不是很大,我同意使用AJAX。我想更多的「將所有這些數據添加到數據庫」等 –

+0

「有幫助」upvote指出。 TY。 :) –

2

如果您在數據提交之間有錯誤,您可以在服務器上檢查唯一的表單方法。另一方面,如果您進行Ajax調用,則可以在客戶端檢查錯誤。因此,利用這些不同的傳輸數據的技術,我們可以根據他們服務於不同目的的決定。

7

規則舊的HTML表單提交和花哨的ajax形式不是相互排斥的。

首先,使純HTML表單正常工作。然後,添加JavaScript來劫持表單併發送ajax請求。

控制器和模型不關心用戶的瀏覽器是否支持(或啓用)javascript。呈現的視圖取決於調用是使用javascript還是簡單的表單提交。這是MVC模式的優勢之一,而不是約束。

5

我認爲這兩者之間的選擇是有點稟道:

  • 表單提交是同步的,並重新加載頁面。

  • ajax調用是異步的,它不會重新加載頁面。

如果某一個動作會改變很多UI元素或需要輪詢很多要呈現的數據,我會去與表單提交。另一方面,如果某個動作用於簡單動作,比如填充選擇框或改善用戶體驗,那麼我會去參加AJAX調用。

沒有什麼能夠避免您使用盡可能多的ajax調用或表單提交,因此最終取決於您。