2012-11-08 124 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调用或表单提交,因此最终取决于您。