0

我有一个项目,用户需要循环大约。100,000 张照片并为每张照片分配 PhotoType ID。

项目要求是屏幕上只显示一张照片,所以基本上这意味着将有 100,000 个页面包含 1 个项目。

启动这个项目的最佳方式是什么,显然使用 ViewState 或完整的页面重新加载会浪费资源?

我正在考虑尝试将数据序列化为客户端脚本变量,然后使用页面方法来处理它。我正在使用 c# asp.net。

如果您有任何想法或更好的方法,请告诉我。

4

2 回答 2

0

下一个和上一个按钮将是带有一些很酷的 CSS 类的简单 HTML 元素。事件处理程序(当用户单击下一个/上一个按钮时)将在 JavaScript 中。当前索引(活动照片 ID)可以在隐藏字段中,您将在每次单击事件后更新该字段(单击下一个时,上一个单击时 idx += 1 和 idx -= 1)。在此之后,您需要从数据库中检索照片(仍在 javaScript 事件中)。我建议 WCF 或 ASMX Web 服务返回 http 处理程序的 URL(我假设您使用处理程序将 varbinary 图像字段显示到 html )。此外,在这些点击之前,您可以显示一些漂亮的 ajax 进度 gif 动画等等......并且 Web 服务本身将调用存储过程,该存储过程将从数据库返回适当的图像(基于活动索引值,因此只需要 1 条记录)。所以最后 - 您只需要:存储过程、几行 Java 脚本代码、处理程序、Web 服务。没有 ASP 网格或数据集,也不需要遍历 10 万条记录。这将是你表演的杀手。希望这有助于为您指明正确的方向。

于 2013-09-15T18:29:59.997 回答
0

对于如此大量的数据,您需要更改策略。首先,您不能只将 10 万条记录加载到 DataSet。您需要在服务器端进行分页(并从即存储过程中仅返回所需的单个记录)。如果每页只显示一张图片,您甚至不需要数据集。就 ViewState 而言 - 我会完全禁用它。您可以将当前页面存储在隐藏字段中,并使用处理程序显示照片。此外,使用 AJAX 来获取下一张/上一张照片。尝试使其尽可能轻量级。

于 2013-09-13T15:52:54.357 回答