在审阅Scott Allen关于Plural Sight的教程视频时:
Building Applications with ASP.NET MVC 4和ASP.NET MVC 5 Fundamentals
我遇到了两个不同的术语:AJAX Helper
和async/await
。
对我来说“听起来”都是在异步模式下运行(如果我错了,请纠正我)。每个人之间究竟有什么区别?
答案 0 :(得分:4)
它们实际上完全不同。理解差异的关键是考虑HTTP协议。
在HTTP协议中,您有一个请求和一个响应。而已。客户端发出请求,服务器创建并发送响应。
在请求处理程序(例如MVC操作)中使用async
和await
时,您仍然只有一个响应。 async
不会更改HTTP协议。那么,async
/ await
做的是在异步工作完成时释放请求线程。但是,当异步工作正在完成时,没有任何内容发送到客户端(尚未创建响应)。您可以将async
/ await
视为“屈服”到ASP.NET运行时,而不是客户端浏览器。
AJAX是一种不同的方法。 AJAX是一种在不更改当前页面的情况下从浏览器发出其他 HTTP请求的约定。如果您正在编写SPA,则可以使用AJAX,或者如果您想加载“占位符”页面并然后加载内容,则使用AJAX。
有关详细信息,请参阅my MSDN article on async ASP.NET的“异步代码不是银弹”部分。