代码之家  ›  专栏  ›  技术社区  ›  Danail

ASP.NET-如何向服务器发出Ajax请求,而不使用我拥有的所有更新面板的信息获得响应?

  •  2
  • Danail  · 技术社区  · 15 年前

    例如,我在页面上有三个更新面板。我单击一个按钮,得到相当长的响应,其中包含三个更新面板(viewstate字符串)的所有数据。

    我想优化我的查询并接收诸如“确定”或“不确定”之类的响应。我该怎么做?

    1 回复  |  直到 15 年前
        1
  •  3
  •   womp    15 年前

    简言之,对于MS Ajax,尤其是更新面板,您不能这样做。

    答案很长:

    UpdatePanels的核心是它们执行完整的日志,并且整个页面的生命周期针对它们包含的任何控件运行,并且它们能够解析出与页面上各个视区相关的响应部分,并仅更新这些部分。

    通过关闭不需要的控件的视图状态,可以显著减少数据量。另一个技巧是设置 UpdateMode 面板的属性 Conditional “,这样页面上的所有更新面板就不会涉及到每一篇文章。如果您是从一个面板发布的,而响应只是更新该面板,那么就不需要传输关于其他面板中控件的数据。

    Read here for Update Panel tips and tricks 以获得更好的性能。

    如果您真的只想对日志进行简单的消息处理,我将研究使用jquery及其Ajax/Post方法来发布到备用页面或Web服务。不过,MS Ajax是围绕回发架构设计的,因此尽管它非常方便,但您无法轻松地摆脱它的开销。