我知道这个问题已经回答了,但我不同意这个答案......
在我看来,“部分回发”一词在上述文章“如何在 ASP.NET 2.0 中编写自己的部分回发”中被滥用。在本文中,作者向您展示了如何对 HttpHandler 进行 AJAX 调用。这是一个与在 ASP.NET 中进行 PartialPostback 调用非常不同的过程。
我相信在(上面的答案)事后评论中回避了这种“差异”,该评论指出:
" UpdatePanel 不仅刷新它包含的控件,它还在处理后使用从服务器获得的值更新 ViewState 值。 "
虽然这个最后的评论有点难以捉摸 - 说明了使用 ASP.NET UpdatePanel 的“部分回发”的定义......它没有解释什么是部分回发(这又是一个与一个普通的 AJAX 调用)。
详细说明...
使用 UpdatePanel 的 MICROSOFT ASP.NET AJAX:
在基本级别上,Microsoft AJAX 通过部分页面回发支持异步请求。部分回发与同步整页回发一样遍历相同的页面生命周期,但只刷新页面上的特定区域或控件——从而实现部分页面呈现。MICROSOFT ASP.NET AJAX 依赖于拦截器模式来生成和处理部分回发。初始化时,MICROSOFT ASP.NET AJAX JavaScript 库添加一组客户端事件处理程序来拦截通常会启动整页回发的调用。处理函数拦截来自注册控件的回发调用,生成部分回发,处理响应内容,然后异步更新页面内容。 由于 MICROSOFT ASP.NET AJAX 建立在现有的 ASP.NET 回发架构之上,因此它利用事件验证并在整个部分回发过程中维护视图状态。您的标准“正常”AJAX 调用不会做这些事情!
简而言之...
MICROSOFT ASP.NET AJAX 使用“普通”AJAX 来“ ajax-ify ”它的页面并实现部分更新……这样做,它在一次调用中多次交易和管理视图状态。 这就是为什么它被称为“部分回发”。随后,这也是他们最初将 UpdatePanel 描述为使您的页面成为“ ajaxy ”的一种方式的原因(因为它与使用 AJAX 不同)。
NORMAL AJAX 调用:
在浏览器中使用 JavaScript 发起的异步请求会创建到服务器的新连接。是的...这可能包括对页面的有状态回发,但也包括对当前页面之外的资源的无状态请求。 但是,在异步回发的情况下,只有服务器上当前页面需要处理的信息被传递到请求中(并且您可以控制这一点)。 意思是,不需要提交整个页面的内容,不需要管理视图状态,并且可以绕过嵌入到页面生命周期中的(本机)开销。同时,异步回发只调用与处理当前请求相关的服务器事件。这就是为什么普通的 AJAX 比 PARTIAL POSTBACKS 快得多的原因!
这些点说明...
不仅“部分回发”是什么......而且为什么“部分回发”和“ajax”调用之间存在差异。这就是为什么这是一个更好的答案。