我的数据库中有一些大约 7K 行的表,我需要在网站 (asp.net) 上使用自定义格式、数据透视表等详细信息制作报告。
什么是最好的解决方案,因为当我用这么多的数据渲染转发器时,它非常慢。
谢谢你的建议
我的数据库中有一些大约 7K 行的表,我需要在网站 (asp.net) 上使用自定义格式、数据透视表等详细信息制作报告。
什么是最好的解决方案,因为当我用这么多的数据渲染转发器时,它非常慢。
谢谢你的建议
关闭视图状态
除非你需要
Page.EnableViewState = false;
拆分表
如果您不想沿着寻呼路线走,您也可以尝试将大的<table>
分成几个较小<table>
的 s。(过去浏览器只能在看到 final 后才能渲染表格</table>
。我不确定这是否仍然正确,但绝对值得一试)
摆脱废话
确保您使用的是 css 而不是使用类似的东西
<td width="40" valign="top"> 50 </td>
<td class="a"> 50 </td> <!-- better -->
<td>50</td> <!-- best -->
<!-- if you need to specify a width, you only need to do it in one row -->
记住crap * 7000 = alot of crap
不惜一切代价减小页面大小
有时问题不是页面的呈现,而是导致问题的下载,所以检查一下。
嵌套表真的会伤害你
纳夫说
如果您不想分页,那么您可能需要一些 AJAX 来在滚动时获取行,并可能在行滚动出视图时删除行,如果您需要节省内存。
我建议使用分页。
考虑这样的典型行:
<tr><td>ID</td><td>Some data</td><td>More and more data</td></tr>
每行有 66 个字符,因此有 7k 行将汇总近 500k 的数据。这对于网络显示来说已经很多了。
因此,如果您真的想在一页中显示所有内容,请尽量减少:
无论如何,取决于目标计算机+浏览器,如果您的行更大,这可能会变得非常缓慢。
你没有提到你正在使用哪种语言,但提到中继器暗示了 ASP.Net?以我的经验,在较大的数据集上将数据绑定到 DataGrid 会更快。
但是,我想知道你为什么要在网页上显示这么多数据。没有一个头脑正常的用户会坐下来滚动浏览这么多数据并发现它很有用。将您的数据限制为对用户有用的相关数据——通常过滤到少于 100 行。
IMO,无论格式如何,包含这么多数据的报告都是无用的,但是如果您绝对必须拥有所有这些数据来打印报告等,请考虑在服务器上生成 PDF 文档。
您可能想为这么多数据尝试自定义报告工具。我的公司制作了一个名为RSinteract(无耻插件)的工具。这使用 SQL Server 报告服务。
如果您只想转储数据。我认为浏览器在呈现该浏览器时或在查询运行时处于锁定状态。如果您知道您的目标浏览器是什么...您可以使用“更多...”链接来获取下一组数据并限制 1000 行。但是,这会影响 Ctrl+F 搜索。类似于分页,但我猜是把责任交给了用户。
如果您真的在寻找“网络应用程序”的“最佳”解决方案,我会公然建议您使用 Flash/Flex 来有效地呈现那么多行。如果不能使用基本 HTML 之外的任何内容,那么我建议在用户滚动时动态获取新行,如@mbeckish 建议的那样......
我为一位客户使用 Dev Express 网格来处理报告,他们喜欢它(尽管我宁愿自己滚动!)