有什么理由更喜欢jQuery.Ajax而不是asp.net UpdatePanel吗?

dgsult0t  于 2023-10-17  发布在  jQuery
关注(0)|答案(5)|浏览(83)

如果我正在开发一个ASP.NET应用程序,在某些情况下,我是否应该忘记MSAjaxUpdatePanels,而更喜欢jQuery.Ajax来更新页面的某些部分?
谢谢你

tag5nh1u

tag5nh1u1#

是的,事实上,你应该几乎总是更喜欢使用你自己的(或jQuery的)apache功能。
有 * 很多 * 与MS Ajax UpdatePanel相关的开销(它执行完整的回发,然后更新页面上更改的元素),因此启用AJAX的网站中的好功能-响应性,连续性等-几乎完全丢失(恕我直言)。您几乎无法控制通过电缆实际提交的内容、返回的内容以及返回给客户端后的处理方式。
另一方面,使用jQuery Ajax,您可以获得完全和即时的控制,您可以根据需要发出轻量级(或重型)请求,并且让我们面对它-API并不比UpdatePanel更难使用。
考虑到这一点,仍然有情况下,UpdatePanel是好的,甚至更好。特别是在ASP.NET WebForms中,如果用户不能使用JavaScript,那么以一种优雅的方式返回页面的一部分可能会很棘手,并且对于快速的“拖放”开发风格,jQuery确实无法竞争。(你是否喜欢拖放式开发是另一个完全不同的讨论。

gz5pxeao

gz5pxeao2#

当然,恕我直言,你应该更喜欢jQuery而不是标准的ASP.NET更新面板。原因(主要)是性能,当你使用jQuery. aps发布一些数据时,你只发布了服务器需要理解的内容。这通常是文本的1-2个参数。
当你使用更新面板发布相同的帖子时,整个页面会在后台运行到服务器,然后整个页面返回,该区域被呈现。
如果你使用jQuery,你可以在服务器上创建一个ashx页面,这个页面没有常规web表单的页面加载和生命周期,而且它也非常轻量级。

slmsl1lt

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。

91zkwejq

91zkwejq4#

正如其他人所说,MS-Ajax和UpdatePanels的性能很差-有时甚至到了无法使用的地步。正如其他人所指出的,应该是小型和轻量级的aScore回调是沉重的,因为它们还包括完整的ViewState。
除了这些问题,我还发现了MS-Ajax的其他一些缺点:

  1. MS生成的JavaScript包含大量开销。他们已经内置了大量的类型检查和变量检查,我想是为了让他们的JavaScript更加类型安全。这种开销会大大降低浏览器端的处理速度--特别是当那些生成的JavaScript函数被重复/递归调用时(就像一些第三方控件的情况一样)。
  2. ASPX代码隐藏变得更加复杂,也更难维护,因为在页面的初始加载以及每个单独的回调中执行相同的页面生命周期。像所有复杂的代码一样,这可以通过熟练的开发人员和良好的代码注解来克服-但它仍然是一个需要考虑的缺点。
    最后一点:MS-Ajax和UpdatePanels的一个好处是,你可以摆脱90%的javascript无知,仍然编码它们。“传统”Ajax涉及的JavaScript编码比MS-Ajax多得多。
j1dl9f46

j1dl9f465#

如果您对整个ASP.NET回发方案感到满意,那么坚持使用此类控件的一个优点是(大多数情况下)它们可以保护您免受回发等副作用的影响。但在这种情况下,它是有代价的:每个AJAX请求都有一个完整的回发(其中将包括视图状态),与直接的AJAX请求相比,这可能会影响性能,cf:
Link
我也不确定它是否能很好地处理跨站点请求(JSONP等),所以这是需要考虑的两个警告。

相关问题