【问题标题】:asp.net nested repeaters and rendering issueasp.net 嵌套中继器和渲染问题
【发布时间】:2011-10-12 15:41:42
【问题描述】:

我正在使用嵌套转发器在网页上呈现 1000 多条记录。我面临的问题是在页面上呈现数据需要太多时间。

这是中继器的概念布局。

-主要

-Level 1

        -Level 2

                -Level 3

                -Level 3

        -Level 2

-Level 1

-主要

当页面加载时,显示主行和 1 级行。当用户点击第 1 层行时,会出现第 2 层行,点击第 2 层,会出现第 3 行。

我正在一次将数据加载到所有转发器,并使用 jQuery 隐藏/显示 2 级和 3 级行。

问题是我在一秒钟内从数据库中获取数据,但渲染时间太长。

一种解决方案是我在页面加载时加载 Main 和 Level 1 行,并根据用户点击显示 Level 2 和 3 行。

还有其他方法可以提高性能吗?

提前致谢

我正在一次将数据加载到页面上,然后隐藏第 2 级和第 3 级。

【问题讨论】:

  • 如果您不发布任何代码,我们应该如何帮助您提高性能?

标签: jquery asp.net


【解决方案1】:

无论如何,显示超过 1000 条记录(假设每条记录都具有正常的复杂性)将花费很长时间。以下是一些建议:

  1. 将 1 级记录拆分到多个页面(如 Google 结果),用户可以在其中单击下一页/上一页按钮,和/或让用户从下拉列表中选择页面索引并从缓存/会话变量。
  2. 当用户在级别 1 中选择特定项目时,将他们重定向到加载所有级别 2 项目的单独页面,并对级别 3 执行相同的操作。
  3. 只有在用户点击特定级别后,才能使用 AJAX 构建您的 2 级和 3 级记录。
  4. 根据用户在访问数据库并构建此页面之前必须选择的一些选项过滤结果。

【讨论】:

  • 太棒了!感谢 jwiscarson 的有用帖子。我当然会按照您的提示进行操作,并且可以看到性能有所提高。
【解决方案2】:

还有其他方法可以提高性能吗?

禁用视图状态。并且只拉下你需要的记录。将结果翻页。

另外,你不能只调用 Ajax 来“根据需要”拉下嵌套/详细的行吗?

【讨论】:

  • 禁用视图状态真的会提高渲染性能吗?我知道它会减小页面大小,因此会减少“通过网络”的时间。也许在我不知道的视图状态和渲染之间存在一些隐蔽的依赖关系?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2010-11-12
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多