【问题标题】:Ajax call or UpdatePanel?Ajax 调用还是 UpdatePanel?
【发布时间】:2009-10-01 12:02:44
【问题描述】:

在我们正在开发的网络应用程序中,有一段时间用户通过提供一些参数来提交搜索(这是一个预订系统,因此“参数”= 2 个日期)。

然后用查询结果填充一个隐藏的表(或者更好的是空表)。

现在我的问题来了:对 WebMethod 进行 AJAX 调用更好,还是只让 UpdatePanel 中的“搜索”按钮并在服务器端更新它?

this post 中,Encosia 指出每次异步回发时面板中的所有内容都会更新。

因此,鉴于此应用程序必须尽可能快,并且应该使用最少的带宽,我选择了 AJAX 方法。
通过这种方式,我将每次搜索的大小从 40-60KB 降低到 ~1KB(最大!)。

执行是“搜索按钮单击”-> Ajax 调用 WebMethod -> JSON 化结果读取和 JQuery HTML 注入表内。

但是这种方法存在一些问题,较大的代码难以维护(客户端性能不是大问题,构建表大约需要 12 毫秒)。

【问题讨论】:

  • 您几乎已经回答了自己的问题。每种方法都有优点和缺点。作为设计师/开发人员,您需要权衡这些因素并提出满足您大部分要求的方法。
  • 我在帖子中遗漏的一点是,通过使用 AJAX,我完全避免了使用 ScriptManager 和 UpdatePanels。页面中加载的javascript少了很多。但是,看看 ASP .NET 4.0 中的变化,我可能会要求恢复到 UpdatePanel 以获得更好的可维护性。

标签: c# asp.net ajax updatepanel


【解决方案1】:

我不认为我在这里看到了问题。

UpdatePanel 非常易于使用/滥用/维护,但可以有效地异步回发整个页面。

AJAX 可能稍微难以维护/涉及更多设置/样板代码,但发送和接收的数据更少,因此使用的带宽更少。它应该比 UpdatePanel 性能更高,但这是否重要取决于许多不同的因素(控件数量、页面大小、ViewState 大小等)。

选择最适合您的情况。应用程序的功能优先级是什么?如果性能/带宽高于维护,请选择 AJAX。如果维护和开发速度很重要,也许选择是 UpdatePanel。如果这是一个 Intranet 应用程序,我可能不太关心使用 UpdatePanels。

【讨论】:

    【解决方案2】:

    如果您有选择,请继续使用PageMethods with jQuery。从长远来看,你会更快乐。 UpdatePanel 在 ASP.NET 4.0 中会变得更好,但它仍然不如 jQuery 和 PageMethods。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-21
      • 2010-09-06
      • 2020-04-05
      • 1970-01-01
      • 2012-04-07
      • 2016-01-14
      • 2015-12-26
      • 1970-01-01
      相关资源
      最近更新 更多