我们从服务器上拉数据,如果我们使用Struts,那么我们可以通过提交MVC架构的页面来拉,或者我们可以进行AJAX调用,但是惯例是使用表单和呈现响应,但是我们也面临着给丰富用户的挑战体验,所以我们妥协约定,开始使用过多的AJAX,那么我们应该如何在两者之间取得平衡呢?
我个人认为AJAX应该用于显示更新,表单提交应该通过重新加载页面来完成。推理?
提交表单时,您是在告诉应用程序做一些事情。用户倾向于认为它已经完成了。当一个页面没有重新加载时,用户常常会疑惑“这有用吗?”。然后他们必须检查以确保他们所做的是正确的。
另一方面,当你显示图表或其他东西时,用户说“显示2011年的数据”......例如,现在是2012年的数据,他们没有“做”一些事情(创建新实体、发送电子邮件等)。所以在这种情况下,AJAX可以提供一个很好的用户界面。页面重载在这里会很烦人。
总之,我认为表单提交应该通过页面重载来完成(让用户看到它在工作),而显示更新应该使用AJAX(防止恼人的页面重载)。
当然,这是一种偏好。我公司的一些应用程序到处都使用AJAX。但这些是最难维护和调试的应用程序。;)
常规的旧超文本标记语言表单提交和花哨的ajax表单并不相互排斥。
首先,使普通HTML表单正确工作。然后,添加javascript劫持表单并发送ajax请求。
控制器和模型不关心用户的浏览器是否支持(或启用)javascript。呈现的视图取决于调用是使用javascript还是简单的表单提交。这是MVC模式的优点之一,而不是限制。
我认为两者之间的选择有些内在:
>
表单提交是同步的,它会重新加载页面。
ajax调用是异步的,它不会重新加载页面。
如果某个操作将更改许多UI元素或需要轮询大量要呈现的数据,我将使用表单提交。另一方面,如果某个操作用于简单的操作,比如填充选择框或改善用户体验,那么我会使用AJAX调用。
没有什么可以避免您根据需要使用尽可能多的ajax调用或表单提交,因此最终由您决定。