求帮忙,我想在前台实现新闻列表分页,数据是一次性全部从数据库中读出,然后前台用JS或其它实现列表分页
发布网友
发布时间:2022-06-02 04:32
我来回答
共1个回答
热心网友
时间:2023-10-29 06:52
从数据库一次性读出所有的记录并不是一个好的做法。虽然你完全可以这样做,但是如果你这么做了,你的网站将糟糕得一塌糊涂。
为了能让你不误入歧途,我说一下正确的做法。
方法一:用sql进行分页,获取分页数据。根据Reques.QueryString来获取页索引,根据页索引和页大小获取分页数据,然后生成html。
方法二:也是一个用于大型网站的方法。新闻条数的增长速度是相对缓慢的,在新增一条新闻前,每次查询出的数据都是一样的。所以可以在列表被请求前就事先生成该列表(静态页面)。这个方法可以结合方法一,也可以一次获取所有记录,再分页生成html。
最后,给你推荐一款分页用的jQuery插件,pagingnation,链接:https://github.com/gbirke/jquery_pagination追问因为我这是做搜索得到的,查找了两个表,用了两个repeater来生成列表(生成后和上面代码一样),这时问题就来了,后台的分页怎么做?如果用存储过程,那这个存储过程又怎么写?求指点!!!!!(我也不想一次性读出全部数据,这是下下策才做的。)
追答select * into #newtable from (select * from [表] where [字段] like '%%关键字%%') as newtable;
SELECT TOP 20 * FROM #newtable WHERE (ID >= (SELECT MAX(id) FROM (SELECT TOP 1 id FROM #newtable ORDER BY id) AS T)) ORDER BY id; //这里的20是页大小,1是页大小*页索引+1
通过这几句sql,你可以用关键字获取分页数据