1、一次ajax请求,然后一次读取数据库全部返回给前端缓存,然后进行分页。
2、一次读取数据库,服务端进行缓存,然后进行多次ajax请求,请求所需要的页数。
3、多次ajax请求,每次都重新读取数据库,读取所需要页的数据。
上面三种我用的是第二种,第一次肯定不好,一次全部全过来,后面的说不定根本用不到呢。还有到底是不是第二种好,为什么啊。还有什么其他方法吗?第三种方法好吗?
看你的具体业务需求了。
如果是访问量比较大的,比如一个活跃的BBS,那么可能一个页面的内容会经常有人来请求,几秒一次甚至一秒N多次,这个时候第三种方式就不适合了,就需要用到第二种方式。
如果是自己的demo或者项目规模小,那么一般采用第三种方式,因为使用第二种方式会增加业务代码的复杂度,比如数据库中的数据更新后,缓存中的数据什么时候更新?更新的策略?而且考虑到一般越靠后的页面越少人请求,那么为了节省内存占用,是否考虑采用某种策略,将不必要的缓存给屏蔽掉?
哥们,你服务器端用redis缓存吗?
第三种。第二种跟第一种对服务端来说都是一次取数据到服务端内存里头,数据量多了容易内存溢出。
一般实际项目中是这样做的, 例如一个用户管理界面, 不仅仅只有分页, 还有查询: 用户名, 年龄等模糊查询.
这时候, 点击分页一般要重新执行一次ajax的请求, 将过滤的条件(例如分页索引, 模糊查询的条件), 而非要用到类似redis之类的缓存.
redis缓存一般用于数据量较大的, 例如一次几万条数据之类的东西, 才1000条数据, 在实际项目中, 一般都是直接读取数据库, 例如mongoDB数据库, 使用limit就可以了.
不要考虑性能, 实际项目的数据量之大, 等你遇到了, 再想办法去解决.