javascript - 假设我有1000条数据,我需要在页面中每页显示20条,这样如何处理。
黄舟
黄舟 2017-04-11 13:09:45
[JavaScript讨论组]

1、一次ajax请求,然后一次读取数据库全部返回给前端缓存,然后进行分页。
2、一次读取数据库,服务端进行缓存,然后进行多次ajax请求,请求所需要的页数。
3、多次ajax请求,每次都重新读取数据库,读取所需要页的数据。

上面三种我用的是第二种,第一次肯定不好,一次全部全过来,后面的说不定根本用不到呢。还有到底是不是第二种好,为什么啊。还有什么其他方法吗?第三种方法好吗?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
黄舟

一般实际项目中是这样做的, 例如一个用户管理界面, 不仅仅只有分页, 还有查询: 用户名, 年龄等模糊查询.
这时候, 点击分页一般要重新执行一次ajax的请求, 将过滤的条件(例如分页索引, 模糊查询的条件), 而非要用到类似redis之类的缓存.
redis缓存一般用于数据量较大的, 例如一次几万条数据之类的东西, 才1000条数据, 在实际项目中, 一般都是直接读取数据库, 例如mongoDB数据库, 使用limit就可以了.
不要考虑性能, 实际项目的数据量之大, 等你遇到了, 再想办法去解决.

巴扎黑

第三种。第二种跟第一种对服务端来说都是一次取数据到服务端内存里头,数据量多了容易内存溢出。

阿神

哥们,你服务器端用redis缓存吗?

怪我咯

看你的具体业务需求了。
如果是访问量比较大的,比如一个活跃的BBS,那么可能一个页面的内容会经常有人来请求,几秒一次甚至一秒N多次,这个时候第三种方式就不适合了,就需要用到第二种方式。
如果是自己的demo或者项目规模小,那么一般采用第三种方式,因为使用第二种方式会增加业务代码的复杂度,比如数据库中的数据更新后,缓存中的数据什么时候更新?更新的策略?而且考虑到一般越靠后的页面越少人请求,那么为了节省内存占用,是否考虑采用某种策略,将不必要的缓存给屏蔽掉?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号