在ASP.NET应用程序中使用Ajax更新面板的优点和缺点

时间:2009-07-20 05:23:23

标签: asp.net ajax updatepanel

在ASP.NET应用程序中使用Ajax更新面板有哪些优缺点。有没有其他方法可以避免使用Ajax更新面板?

5 个答案:

答案 0 :(得分:22)

优点:

  1. 易于使用和配置(嗯,我不知道有任何其他优点!)
  2. 缺点:

    请参阅herehere
    现在最好的部分是替代方案:

    使用jQuery内置的Ajax支持来进行GET / POST Ajax调用,它非常简单(比我想要的更新面板简单),并且与大多数浏览器完全兼容!
    使用jQuery为执行Ajax调用提供的众多简单方法之一的示例:

      $('#anotherContainer').load('/Home/RegularAjaxResource');
    

    这将简单地调用服务器资源(在本例中为RegularAjaxResource)并在id为anotherContainer的UI元素上显示它返回的数据

答案 1 :(得分:6)

我同意7alwagy,只是想补充一点。

如果要更新/更改控件,则必须使用UpdatePanel AND 仍然可以在状态控件的Webforms Postback模型中工作,尤其是Viewstate。

例如:

如果您明确使用JS更新客户端上的DropDownList控件的值,并且您使用的是内置的Webforms Postback模型,那么您所做的更改将不会被选中。

基本上,如果您依赖于内置的Viewstates,那么您必须使用UpdatePanel。你可以在技术上不使用它,但你真的必须与框架斗争以完成任务。

如果您不依赖Postbacks或Viewstates,那么您完全不需要UpdatePanel。

答案 2 :(得分:3)

我真的想不到使用updatepanels的1个优点。他们很悲伤,我发现了困难。

它们只能用于最琐碎的ajax效果,如果你要进行任何数据检索或数据库查找,它们在扩展方面存在很大问题。 UpdatePanel令人沮丧,我很快就分享了更新面板悲伤herehereherehere

如果这还不足以说服你不要使用updatepanel,那么什么都不会。

答案 3 :(得分:1)

我同意更新面板是邪恶的dangerous但在某些情况下您可能想要使用它,而不是其他选项。

  • 页面上有很少的asp.net控件,而且查看状态较少。
  • 页面html不是太大。
  • 时间仅限于完成任务。
  • 表现不是第一个问题。
  • 希望通过回发来保持控制状态。
  • 您要解决许多服务器端事件。

答案 4 :(得分:1)

<强>优点:

  1. 易于实施
  2. 无需在客户端编写javascript
  3. <强>缺点

    1. 由于传输了所有视图状态,因此使用更多带宽
    2. 应该触发ajax调用的元素应该在更新面板中。实际上并不是一直有可能
    3. 更新面板外部的数据不会发送到服务器,这可能是进一步处理所需的。
    4. 在实践中,开发人员无法预先确定需要包含在更新面板中的所有数据