是否有理由更喜欢jQuery.Ajax到asp.net UpdatePanel?

pen*_*ake 9 asp.net jquery updatepanel

如果我正在开发一个asp.Net应用程序,有些情况下我应该忘记MS Ajax UpdatePanels并且更喜欢jQuery.Ajax来更新我的页面的某些部分吗?

谢谢

Tom*_*han 10

是的,事实上,您之前几乎总是喜欢使用自己的(或jQuery)ajax功能.

很多与MS的Ajax的UpdatePanel(它执行一个完整的回传,然后更新改变了页面上的元素(S))相关的开销,因此在AJAX很好的特性,使网站- responsivenes,连续性等-几乎完全迷失了(恕我直言).您几乎无法控制通过电缆实际提交的内容,返回的内容以及返回客户端后如何处理.

另一方面,使用jQuery Ajax,您可以获得完整的即时控制,您可以根据需要制作轻量级(或重型)请求,并让我们面对它 - API的使用方式比使用API​​更难UpdatePanel.

考虑到这一点,仍然存在UpdatePanel很好甚至更好的情况.特别是在ASP.NET WebForms中,如果用户不能使用javascript,以一种优雅降级的方式返回页面的一部分可能会很棘手,并且对于快速的"拖放"开发风格,确实存在没有办法jQuery可以竞争.(无论你是否喜欢拖放式开发,都是一个完全不同的讨论...)


che*_*rbr 1

如果您对整个 ASP.Net 回发方案感到满意,那么坚持此类控件的优点之一是(大多数时候)它们可以保护您免受回发等副作用的影响。但在这种特定情况下,它会带来一定的成本:每个 AJAX 请求(其中将包括视图状态)都有一个完整的回发,与直接的 AJAX 请求相比,这可能会影响性能,请参见:

关联

我也不确定它是否可以很好地处理跨站点请求(JSONP 等),所以这是两个需要考虑的警告。