如果我正在开发一个ASP.NET应用程序,在某些情况下,我是否应该忘记MSAjaxUpdatePanels,而更喜欢jQuery.Ajax来更新页面的某些部分?谢谢你
tag5nh1u1#
是的,事实上,你应该几乎总是更喜欢使用你自己的(或jQuery的)apache功能。有 * 很多 * 与MS Ajax UpdatePanel相关的开销(它执行完整的回发,然后更新页面上更改的元素),因此启用AJAX的网站中的好功能-响应性,连续性等-几乎完全丢失(恕我直言)。您几乎无法控制通过电缆实际提交的内容、返回的内容以及返回给客户端后的处理方式。另一方面,使用jQuery Ajax,您可以获得完全和即时的控制,您可以根据需要发出轻量级(或重型)请求,并且让我们面对它-API并不比UpdatePanel更难使用。考虑到这一点,仍然有情况下,UpdatePanel是好的,甚至更好。特别是在ASP.NET WebForms中,如果用户不能使用JavaScript,那么以一种优雅的方式返回页面的一部分可能会很棘手,并且对于快速的“拖放”开发风格,jQuery确实无法竞争。(你是否喜欢拖放式开发是另一个完全不同的讨论。
gz5pxeao2#
当然,恕我直言,你应该更喜欢jQuery而不是标准的ASP.NET更新面板。原因(主要)是性能,当你使用jQuery. aps发布一些数据时,你只发布了服务器需要理解的内容。这通常是文本的1-2个参数。当你使用更新面板发布相同的帖子时,整个页面会在后台运行到服务器,然后整个页面返回,该区域被呈现。如果你使用jQuery,你可以在服务器上创建一个ashx页面,这个页面没有常规web表单的页面加载和生命周期,而且它也非常轻量级。
slmsl1lt3#
我会说,你肯定应该更喜欢jQuery Ajax,而不是ASP.NET AJAX UpdatePanel。如果你看看ASP.NET AJAX site,真的没有提到ASP.NET AJAX和/或UpdatePanel..事实上,看起来微软更倾向于使用jQuery作为客户端JavaScript AJAX框架的ASP.NET开发人员,而不是UpdatePanel和相关的ASP.NETAJAX控件。他们仍然提供指向AJAX控制工具包的链接,但是有这么多jQuery插件,为什么还需要工具包呢?UpdatePanel更慢,体积更大--使用jQuery Ajax。
91zkwejq4#
正如其他人所说,MS-Ajax和UpdatePanels的性能很差-有时甚至到了无法使用的地步。正如其他人所指出的,应该是小型和轻量级的aScore回调是沉重的,因为它们还包括完整的ViewState。除了这些问题,我还发现了MS-Ajax的其他一些缺点:
j1dl9f465#
如果您对整个ASP.NET回发方案感到满意,那么坚持使用此类控件的一个优点是(大多数情况下)它们可以保护您免受回发等副作用的影响。但在这种情况下,它是有代价的:每个AJAX请求都有一个完整的回发(其中将包括视图状态),与直接的AJAX请求相比,这可能会影响性能,cf:Link我也不确定它是否能很好地处理跨站点请求(JSONP等),所以这是需要考虑的两个警告。
5条答案
按热度按时间tag5nh1u1#
是的,事实上,你应该几乎总是更喜欢使用你自己的(或jQuery的)apache功能。
有 * 很多 * 与MS Ajax UpdatePanel相关的开销(它执行完整的回发,然后更新页面上更改的元素),因此启用AJAX的网站中的好功能-响应性,连续性等-几乎完全丢失(恕我直言)。您几乎无法控制通过电缆实际提交的内容、返回的内容以及返回给客户端后的处理方式。
另一方面,使用jQuery Ajax,您可以获得完全和即时的控制,您可以根据需要发出轻量级(或重型)请求,并且让我们面对它-API并不比UpdatePanel更难使用。
考虑到这一点,仍然有情况下,UpdatePanel是好的,甚至更好。特别是在ASP.NET WebForms中,如果用户不能使用JavaScript,那么以一种优雅的方式返回页面的一部分可能会很棘手,并且对于快速的“拖放”开发风格,jQuery确实无法竞争。(你是否喜欢拖放式开发是另一个完全不同的讨论。
gz5pxeao2#
当然,恕我直言,你应该更喜欢jQuery而不是标准的ASP.NET更新面板。原因(主要)是性能,当你使用jQuery. aps发布一些数据时,你只发布了服务器需要理解的内容。这通常是文本的1-2个参数。
当你使用更新面板发布相同的帖子时,整个页面会在后台运行到服务器,然后整个页面返回,该区域被呈现。
如果你使用jQuery,你可以在服务器上创建一个ashx页面,这个页面没有常规web表单的页面加载和生命周期,而且它也非常轻量级。
slmsl1lt3#
我会说,你肯定应该更喜欢jQuery Ajax,而不是ASP.NET AJAX UpdatePanel。如果你看看ASP.NET AJAX site,真的没有提到ASP.NET AJAX和/或UpdatePanel..事实上,看起来微软更倾向于使用jQuery作为客户端JavaScript AJAX框架的ASP.NET开发人员,而不是UpdatePanel和相关的ASP.NETAJAX控件。
他们仍然提供指向AJAX控制工具包的链接,但是有这么多jQuery插件,为什么还需要工具包呢?
UpdatePanel更慢,体积更大--使用jQuery Ajax。
91zkwejq4#
正如其他人所说,MS-Ajax和UpdatePanels的性能很差-有时甚至到了无法使用的地步。正如其他人所指出的,应该是小型和轻量级的aScore回调是沉重的,因为它们还包括完整的ViewState。
除了这些问题,我还发现了MS-Ajax的其他一些缺点:
最后一点:MS-Ajax和UpdatePanels的一个好处是,你可以摆脱90%的javascript无知,仍然编码它们。“传统”Ajax涉及的JavaScript编码比MS-Ajax多得多。
j1dl9f465#
如果您对整个ASP.NET回发方案感到满意,那么坚持使用此类控件的一个优点是(大多数情况下)它们可以保护您免受回发等副作用的影响。但在这种情况下,它是有代价的:每个AJAX请求都有一个完整的回发(其中将包括视图状态),与直接的AJAX请求相比,这可能会影响性能,cf:
Link
我也不确定它是否能很好地处理跨站点请求(JSONP等),所以这是需要考虑的两个警告。