我认为这主要是一个偏好问题,但我认为将 AJAX 与 jQuery 结合使用可提供更灵活和响应更快的应用程序。它也不必做更多的工作。要将表单中的所有模型属性提交给控制器,您只需执行以下操作:
$.ajax({
url: "SomeController/SomeMethod",
data: $('#FormName').serialize(), //this will basically do what MVC would have done if you used forms and a submit button
});
在控制器上,模型绑定器会将您的所有属性绑定到模型。
所以你会:
public ActionResult SomeMethod(SomeModel someModel)
{
// do work with your tightly bound model!
return View();
}
但是...如果您只是想了解 AJAX 的优点以及您也会遇到的一些缺点,那么您就是:
专业版:
在许多情况下,网站上的相关页面包含许多它们之间共有的内容。使用传统方法,必须在每次请求时重新加载该内容。但是,使用 Ajax,Web 应用程序可以只请求需要更新的内容,从而大大减少带宽使用和加载时间。
使用异步请求可以让客户端的 Web 浏览器 UI 更具交互性并快速响应输入,并且页面的各个部分也可以单独重新加载。即使应用程序在服务器端没有发生变化,用户也可能认为应用程序更快或更灵敏。
使用 Ajax 可以减少与服务器的连接,因为脚本和样式表只需请求一次。
可以在整个网站中维护状态。 JavaScript 变量将持续存在,因为不需要重新加载主容器页面。
缺点:
由于其动态特性,与静态页面相比,Ajax 接口通常更难开发。
使用连续 Ajax 请求动态创建的页面不会自动向浏览器的历史记录引擎注册,因此单击浏览器的“后退”按钮可能不会将用户返回到启用 Ajax 的页面的早期状态,但可能会返回它们到它之前访问的最后一个完整页面。解决方法包括使用不可见的 IFrame 来触发浏览器历史记录的更改,以及在 Ajax 运行时更改 URL 的锚部分(在 # 之后)并监控它的更改。
动态网页更新还使用户难以为应用程序的特定状态添加书签。存在解决此问题的方法,其中许多使用 URL 片段标识符(“#”之后的 URL 部分)来跟踪并允许用户返回到给定状态的应用程序。
由于大多数网络爬虫不执行 JavaScript 代码,可公开索引的网络应用程序应提供一种替代方法来访问通常使用 Ajax 检索的内容,以允许搜索引擎对其进行索引。
任何浏览器不支持 JavaScript 或 XMLHttpRequest 或只是禁用此功能的用户将无法正确使用依赖于 Ajax 的页面。同样,移动电话、PDA 和屏幕阅读器等设备可能不支持所需的技术。能够使用 Ajax 的屏幕阅读器可能仍然无法正确读取动态生成的内容。让用户执行功能的唯一方法是回退到非 JavaScript 方法。这可以通过确保可以正确解析链接和表单并且不完全依赖 Ajax 来实现。在 JavaScript 中,可以通过“return false”停止表单提交。
虽然 W3C 有一个 XMLHttpRequest 对象草案可以启用此功能,但同源策略会阻止某些 Ajax 技术跨域使用。
与其他 Web 技术一样,Ajax 有自己的一组漏洞,开发人员必须解决这些漏洞。熟悉其他 Web 技术的开发人员可能必须学习新的测试和编码方法才能编写安全的 Ajax 应用程序。
Ajax 驱动的界面可能会显着增加用户对 Web 服务器及其后端(数据库或其他)的请求数量。这可能会导致更长的响应时间和/或额外的硬件需求。
what are the advantages and disadvantages of making ajax calls using jquery?