有一个用户列表(由最后一次访问该站点的日期组成)。一开始显示40张卡片,然后通过AJAX加载信息(使用用户表中的OFFSET)。
问题是在高流量的情况下,列表结构会在第一次和后续下载之间更新,并显示重复项。
有一个想法是在第一次加载时将前 1000 个元素的 ID 写入 JSON 数组,并在后续加载时显示这些 ID 的信息。或者立即下载前 1000 个用户的数据,然后在没有额外请求的情况下显示它们(例如,像 vk 或 instagram 那样)。在这两种情况下,限制前 1000 个用户的发行(这应该足以进行完整选择,如果不够,则使用澄清参数提出请求)。
不幸的是,LAST_ID 技巧在这里不起作用。该表不是与时间戳或类似锚点相关的帖子或其他信息的列表。
有谁知道这个问题的更优雅和更简单的解决方案?
创建一个
дата последнего захода на сайт包含字段id,user_id,的表timestamp。该字段user_id是唯一的并且引用用户表。如有必要,更新时间 - 删除旧记录并添加新记录。所以你可以堆叠id另一种选择是不通过偏移量,而是以新选择的记录的时间小于或等于最后显示的记录的时间为条件进行重复请求。而在客户端,过滤掉一两条已经显示的记录。
为什么
меньше либо равно?因为如果你严格地少做,那么你可以跳过相同时间的记录,其中一个落入上一个样本中,第二个没有