我喜欢这个问题队友+1
基本上,邪恶的 UpdatePanel 是万恶之源。可悲的是 =(。幕后的更新面板引发了对服务器的异步回发,但要完全了解发生了什么,您需要了解UpdatePanel 目标
UpdatePanel 旨在与 ASP.Net Web 表单一起使用,这些控件必须经过 whoooole ASP.Net 页面生命周期才能正常工作,因此,它们需要whoooole 页面 ViewState。因此,每次您使用 UpdatePanel 执行回发时,即使您只想部分呈现页面的一小部分,整个页面视图状态也会来回发送到服务器......很烂。微软为什么要创造这个怪物?我认为这是因为早在 5 到 6 年前(或更长时间),AJAX 还没有像今天这样流行。另一个原因是微软希望提供一个框架来以简单的方式编写 AJAX 调用,但又不失 Web 控件的强大功能。
因此,考虑到这一点,AJAX 调用和 AJAX 调用之间的区别UpdatePanel
很简单:
AJAX 调用仅发送服务器方法所需的数据,并且只返回所需的数据。使用纯 AJAX 调用的性能令人印象深刻。
但是我的 Ajax 请求调用的方法必须是 WebMethod。
这部分是正确的,我的意思是有不同的方法可以从服务器公开方法:
使用传统的 Web 服务 - 脚本服务 (ASMX)
使用 PageMethods(ASPX 页面上的静态方法)
公开 WCF 服务
公开 WCF REST 服务
使用 WEB API
使用 MVC 控制器的操作
使用自定义 HttpHandlers 返回特定的内容类型,如 JSON
ETC
最后结果是一样的,无论你使用什么方法来暴露服务器方法,当你使用纯 AJAX 调用来使用它们时,如果你使用 Web 表单,你将不得不面对以下问题:
如果您想使用纯 AJAX 调用,那么您应该考虑迁移到 MVC,因为在 Web 表单中您将失去 Web 控件的功能,换句话说,您的开发会更加困难