【发布时间】:2020-09-11 23:35:55
【问题描述】:
所以我正在帮助为一个应用程序制作一个 Flask API,它允许用户与其他人分享他们在应用程序上所做的创作。我们想要实现的一件事是让用户按照上传到服务器的最新作品进行排序。目前,我们只是让 API 按上传时间对结果进行排序,并对这些结果进行分页。
问题是,如果用户请求获取最新作品的第 1 页,并在那里停留足够长的时间以便将更多内容上传到服务器,则在转到第 2 页之前,一些作品可能会被推回,导致用户多次看到同一事物。解决此问题的最佳方法是什么?
抱歉,如果不清楚,或者标题不准确。我很难用语言表达这个问题,所以如果需要,我很乐意尝试澄清。
【问题讨论】:
-
我会注意到许多网站(包括这个!)都存在这个问题,并且不要尝试解决它。除非有人真的用新内容向您的应用程序发送垃圾邮件,否则这只会带来轻微的不便。您可以维护某种状态(例如,最后看到的内容的 id)并使用它来限制来自数据库的结果,但这在实践中可能会被证明很棘手或性能不佳。
-
为了防止这种情况,一些网站在客户端动态加载数据。因此,当您的用户浏览时,顶部会显示更多内容,而无需重新加载页面。这不会解决问题,但会让用户明白为什么他们会在下一页看到相同的内容。
标签: python python-3.x flask flask-sqlalchemy python-3.8