前端分几次获取一段数据,如何让django只从数据库获取一次数据

假设前端第一次访问时,django就一次性从数据库获取了500个数据,并返回1-100数据给前端,前端下次获取时,django直接就从上次获取的数据中,返回101-200数据。

不知道该如何解决,目前想法
1.想利用缓存,但缓存每次都返回完整数据。
2.想利用中间件,判断session来返回数据。
3.利用分页,但我不清楚是不是只获取一次数据

由于对django不太清楚,所以存有疑问

阅读 3.2k
2 个回答

首先前端访问大部分是无状态的,换言之基本上后端不应该“认识”前端,所以也不应该分批给数据。

其次数据库本身也会有缓存,所以如果两次都是取同样的数据,数据库并不会真的跑两次,很大可能跑一次,所以压力可能并不大。

最后如果你非得这么实现的话那只能通过缓存了。不过命中之类的会有问题,所以我看来并不是很优的解。

虽然我没这么写过(也是小白一枚),但是我有个思路,你瞅瞅:

可以用redis做一个存储,然后通过ajax发请求 GET http://xxx.com/?start=0@limit=100
然后你的view分析get的start和limit参数从redis里拿数据

其实也用到了数据库,但是肯定比mysql要快

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题