【问题标题】:Handling multiple grids with heavy data处理具有大量数据的多个网格
【发布时间】:2011-09-23 03:31:26
【问题描述】:

我正在使用 asp.net 4.0(浏览器 IE8)开发一个网站。我的页面包含一个带有 5 个选项卡的选项卡容器。每个选项卡都包含一个没有分页的网格,即每个网格可以包含 250 到 300 条记录。我正在按需加载选项卡,但是一旦加载了所有选项卡。我的用户界面变得太慢了。如何让我的 UI 更快、更流畅?

【问题讨论】:

  • 对于来到这里的其他人,真正适合您的解决方案是什么?

标签: asp.net


【解决方案1】:

“按需”加载标签是什么意思?如果它只是意味着您在单击选项卡时填充网格数据,那么它解释了您的问题。本质上,ASP.NET 数据绑定控件将它们的数据存储到视图状态中,因此当您继续加载网格时,您的视图状态会不断增加,并且本质上,您的页面很大,从而使页面检索和回发速度变慢。

快速解决方案是禁用所有网格的视图状态,并始终从实际数据存储绑定当前选项卡上的网格(您可以在会话或 ASP.NET 缓存中缓存服务器端的数据以提高性能)。这将确保一次只填充一个网格,并且视图状态没有负担。

替代技术将涉及仅加载当前选项卡的内容,但它涉及将内容安排到用户控件等中,并且在回发场景等中工作有点棘手。

相对简单的方法是使用您自己的控件/html 来呈现选项卡,每个选项卡都是对单独页面的 GET 请求。例如,如果您有四个选项卡,那么您将拥有一个提供通用布局的母版页,包括选项卡和代表每个选项卡的 4 个内容页面。

如果您想避免在选项卡切换时刷新页面,那么您可以尝试使用 AJAX 请求加载内容页面。

【讨论】:

    【解决方案2】:

    我不确定这是否会对您的问题有所帮助,但一种选择是在用户切换到另一个选项卡时隐藏网格内容 (style.display='none')。值得一试。

    【讨论】:

    • 你能尝试更轻的网格,比如 Json 和 jquery 绑定吗?在这种情况下,浏览器也很重要。我见过一个类似的案例,firefox 很流畅,即跳动和缓慢。
    猜你喜欢
    • 2011-11-18
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2015-07-04
    • 2015-10-17
    • 2023-03-17
    • 2013-07-17
    相关资源
    最近更新 更多