AJAX Helper和async / await之间的区别

时间:2014-11-17 17:10:49

标签: asp.net ajax asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

在审阅Scott Allen关于Plural Sight的教程视频时:

Building Applications with ASP.NET MVC 4ASP.NET MVC 5 Fundamentals

我遇到了两个不同的术语:AJAX Helperasync/await

对我来说“听起来”都是在异步模式下运行(如果我错了,请纠正我)。每个人之间究竟有什么区别?

1 个答案:

答案 0 :(得分:4)

它们实际上完全不同。理解差异的关键是考虑HTTP协议。

在HTTP协议中,您有一个请求和一个响应。而已。客户端发出请求,服务器创建并发送响应。

在请求处理程序(例如MVC操作)中使用asyncawait时,您仍然只有一个响应。 async不会更改HTTP协议。那么,async / await做的是在异步工作完成时释放请求线程。但是,当异步工作正在完成时,没有任何内容发送到客户端(尚未创建响应)。您可以将async / await视为“屈服”到ASP.NET运行时,而不是客户端浏览器。

AJAX是一种不同的方法。 AJAX是一种在不更改当前页面的情况下从浏览器发出其他 HTTP请求的约定。如果您正在编写SPA,则可以使用AJAX,或者如果您想加载“占位符”页面并然后加载内容,则使用AJAX。

有关详细信息,请参阅my MSDN article on async ASP.NET的“异步代码不是银弹”部分。