在.NET页面中进行分页的最佳方法
希望你度过一个美好的一天。在.NET页面中进行分页的最佳方法
我有一个页面让用户浏览其他用户发布的相关项目(相册)。 我会显示每个专辑的专辑缩略图,标题,作者,评分视图和类别。
现在相关项目的数量可能会变大说500相册与用户正在查看的相册相关。我只显示前20个,并放下一个链接,说'查看全部'
一旦用户点击查看全部,我将他带到一个页面,每页显示50项。
方法1:使用一个中继器\电网控制 当用户点击一个网页,我得到了正确的项目(使用SQL),并将结果绑定到网格 的页面刷新和用户看到新的一页。所以一个大的请求和用户会看到所有的大拇指。
选项2: 当用户点击我使用Ajax获得缩略图文件名,标题,评分,作者等 后来我手动构建网格和使用JavaScript 设置元素的src属性然后我追加寻呼机由此产生的网格为div。用户看到没有页面刷新的新网格。
我的顾虑: 我在文件系统(不是数据库) 在第二种方法的JavaScript将派出50个单独的请求的Web服务器,以获得的影像文件的缩略图和所有图像文件。这将导致Web服务器上的很多请求。大型并发用户将使用映像文件请求来泛滥服务器。
什么是最好的&有效的方式来做分页和存储用户文件?
由于该应用程序应该处理数百万张照片,我的应用程序会因将图像放入文件系统而死亡吗?
如果您还没有使用CDN(内容分发网络,如Amazon S3等),将会有所帮助(因此您可以同时从多个位置下载)。
而不是请求一个图像,请求从服务器的页面。让服务器决定返回多少图片。
你可以尝试一些CSS精灵技术。
Definetely你不应该使用选项1,因为它会占用大量的时间,网页载入
Aldso第二个选择ID不是那么好无论是。
您可以使用您的GridView/ListView控件,但使用服务器端分页来获取数据。这样您就可以只加载每页所需的信息。
你可以看到如何实现服务器端分页此存储过程:http://www.sqlteam.com/article/server-side-paging-using-sql-server-2005
然后你就可以在个人页面PageIndexChanging事件处理程序绑定你的GridView 所以只有那些需要的是实际加载的页面。
无法关注。请描述CDN – kheya 2010-07-29 22:44:04
@Projapati为您排除了首字母缩略词 – 2010-07-29 23:04:13
@Projapati - CDN基本上是一个用于提供内容的地理位置网络服务器。它们通常用于分离Web应用程序服务器和静态内容服务器之间的负载。它们通常也位于地理位置,因此内容将从离最终用户最近的服务器提供,以提高页面的整体性能和加载时间。 – 2010-07-30 03:05:47