假设前端第一次访问时,django就一次性从数据库获取了500个数据,并返回1-100数据给前端,前端下次获取时,django直接就从上次获取的数据中,返回101-200数据。
不知道该如何解决,目前想法
1.想利用缓存,但缓存每次都返回完整数据。
2.想利用中间件,判断session来返回数据。
3.利用分页,但我不清楚是不是只获取一次数据
由于对django不太清楚,所以存有疑问
假设前端第一次访问时,django就一次性从数据库获取了500个数据,并返回1-100数据给前端,前端下次获取时,django直接就从上次获取的数据中,返回101-200数据。
不知道该如何解决,目前想法
1.想利用缓存,但缓存每次都返回完整数据。
2.想利用中间件,判断session来返回数据。
3.利用分页,但我不清楚是不是只获取一次数据
由于对django不太清楚,所以存有疑问
虽然我没这么写过(也是小白一枚),但是我有个思路,你瞅瞅:
可以用redis做一个存储,然后通过ajax发请求 GET http://xxx.com/?start=0@limit=100
然后你的view分析get的start和limit参数从redis里拿数据
其实也用到了数据库,但是肯定比mysql要快
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
首先前端访问大部分是无状态的,换言之基本上后端不应该“认识”前端,所以也不应该分批给数据。
其次数据库本身也会有缓存,所以如果两次都是取同样的数据,数据库并不会真的跑两次,很大可能跑一次,所以压力可能并不大。
最后如果你非得这么实现的话那只能通过缓存了。不过命中之类的会有问题,所以我看来并不是很优的解。