如果我正在开发一个asp.Net应用程序,有些情况下我应该忘记MS Ajax UpdatePanels并且更喜欢使用jQuery.Ajax更新我页面的某些部分吗?
谢谢
答案 0 :(得分:10)
是的,事实上,您应该几乎总是更喜欢使用您自己的(或jQuery的)ajax功能。
与MS Ajax UpdatePanel相关的很多开销(它执行完整的回发,然后更新页面上已更改的元素),因此它具有很好的功能。支持AJAX的网站 - 响应性,连续性等 - 几乎完全丢失(恕我直言)。您几乎无法控制通过电缆实际提交的内容,返回的内容以及返回客户端后如何处理。
另一方面,使用jQuery Ajax,您可以获得完整的即时控制,您可以根据需要制作轻量级(或重型)请求,让我们面对它 - API在任何情况下都不会更难使用而不是UpdatePanel。
考虑到这一点,仍然存在UpdatePanel很好甚至更好的情况。特别是在ASP.NET WebForms中,如果用户不能使用javascript,以一种优雅降级的方式返回页面的一部分可能会很棘手,并且对于快速的“拖放”开发风格,确实存在没有办法jQuery可以竞争。 (无论你是否喜欢拖放式开发,都是一个完全不同的讨论......)
答案 1 :(得分:2)
当然, 恕我直言,你应该更喜欢jQuery而不是标准的ASP.Net更新面板。 原因(主要)是性能,当您使用jQuery.ajax发布一些数据时,您只发布服务器需要了解帖子的内容。 这通常是1-2个文本参数。
当您使用更新面板执行相同的帖子时,整个页面会在幕后走到服务器,然后整个页面返回并呈现区域。
如果你使用jQuery,你可以在服务器上创建一个ashx页面,这个页面没有常规webform的页面加载和生命周期,而且它也非常轻量级。
答案 2 :(得分:2)
我会说你绝对应该支持jQuery AJAX而不是ASP.NET AJAX UpdatePanel。如果你看一下ASP.NET AJAX site,真的没有提到ASP.NET AJAX和/或UpdatePanel ......但是有很多提到jQuery。事实上,微软似乎倾向于使用jQuery作为UpdatePanel上的客户端JavaScript AJAX框架和相关的ASP.NET AJAX控件的ASP.NET开发人员。
他们仍然提供了AJAX Control Toolkit的链接,但是有很多jQuery插件,你为什么需要Toolkit?
UpdatePanel更慢,更笨重 - 使用jQuery AJAX。
答案 3 :(得分:1)
如果你对整个ASP.Net回发方案感到满意,坚持这种控制的一个好处是(大多数时候)它们可以保护你免受回发等方面的影响。但在这种特定情况下,它会带来成本:每个AJAX请求都有一个完整的回发(包括视图状态),与直接的AJAX请求相比,这可能是性能损失,参见:
http://geekswithblogs.net/dlussier/archive/2007/09/06/115188.aspx
我也不确定它是否处理好跨站请求(JSONP等),所以这些是需要考虑的两个注意事项。
答案 4 :(得分:0)
正如其他人所说,MS-Ajax和UpdatePanels表现不佳 - 有时甚至无法使用。正如其他人所指出的那样,ajax回调应该是小而且轻量级,很重,因为它们还包含完整的ViewState。
除了这些问题,我还发现了MS-Ajax的其他一些缺点:
最后一点:MS-Ajax& amp; UpdatePanels,你可以逃脱90%javascript无知,仍然编码他们。 “传统”ajax涉及比MS-Ajax更多的javascript编码。