我有一个 ASP.NET 网页,其中显示了需要在某些条件下进行最佳更新的各种字段、按钮单击等。我们已经实现了 AJAX,使用 ASP.NET 更新面板来避免可见的回发。
原本只有一个领域需要这种能力……很快就扩展到了其他领域。现在我的网页有多个更新面板。
我想知道是否最好将整个表单包装在单个 UpdatePanel 中,或者保留单独的 UpdatePanel。
使用 ASP.NET UpdatePanel 的最佳实践是什么?
我有一个 ASP.NET 网页,其中显示了需要在某些条件下进行最佳更新的各种字段、按钮单击等。我们已经实现了 AJAX,使用 ASP.NET 更新面板来避免可见的回发。
原本只有一个领域需要这种能力……很快就扩展到了其他领域。现在我的网页有多个更新面板。
我想知道是否最好将整个表单包装在单个 UpdatePanel 中,或者保留单独的 UpdatePanel。
使用 ASP.NET UpdatePanel 的最佳实践是什么?
多个面板要好得多。完全使用 UpdatePanels 的主要原因之一是减少流量并仅通过网络来回发送您需要的部分。通过仅使用一个更新面板,您几乎每次都在做一个完整的回帖,您只是使用一点 Javascript 来更新页面而不会闪烁。
如果有页面需要一起更新,有办法在一个更新时触发其他面板更新..但您绝对应该使用多个更新面板。
我会提醒您,对于多个更新面板,您需要小心。确保将 UpdateMode 设置为 Conditional。否则,当一个更新面板被“回发”到服务器时,它们都被回发。
我强烈建议使用这些工具
Web Development Helper(这里有一个简短的教程Web Development Helper 和 ASP.NET Ajax)
这些答案中的任何一个都没有提到选择之间的可维护性比较。第三种选择是您不使用任何更新面板,而是将自己留给反向 ajax。查看有趣的项目:PokeIn和VisualJS.NET
我相信如果可以的话,最好使用多个 UpdatePanel,因为 UpdatePanel 生成的 POST 的大小。如果您可以将手动 AJAX 方法用于更新字段等小事,那就更好了。WPF 提供了一些 javascript 函数和方法来完成此任务。以下是一些可能有用的链接:
我推荐多个更新面板。使用多个更新面板将保持在 asp.net Web 应用程序中使用更新面板的真正意义。而且由于我们甚至可以从另一个更新面板触发一个更新面板,这使得编写页面范围的控件和行为变得更加容易。
我完全同意使用多个更新面板而不是使用单个更新面板,如果您只想回发某个部分,如果您想回发整个页面,那么最好使用单个更新面板。
确保为所有更新面板设置了 updatemode="conditional",否则所有更新面板都会被刷新。
另请查看以下帖子以了解更新面板的完整用法
不确定最佳实践,但根据我的经验,多个面板运行良好,并减少了一次发送的数据量 - 导致整体响应时间增加。多个面板还降低了每个服务器调用的复杂性。