Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 适当的状态管理体系结构,以实现项的读取/未读取_Flutter_Dart_Architecture - Fatal编程技术网

Flutter 适当的状态管理体系结构,以实现项的读取/未读取

Flutter 适当的状态管理体系结构,以实现项的读取/未读取,flutter,dart,architecture,Flutter,Dart,Architecture,上下文:我们正在实现一个新闻应用程序。现在,您可以假设所有用户的新闻都是相同的,并根据我们设置的参数(根据趋势和日期)维护订单 问题:我们不确定跟踪用户阅读内容的最佳实现是什么。我们希望能够配置一种跟踪用户阅读内容和未阅读内容的方式 假设:您可以假设数据库中的帖子按时间降序排列 因此,理想的情况是:当有帖子时:从应用程序中的服务器获取A、B、C、D、E,用户读取A、B。现在,用户只有在检查下一篇帖子时才能看到C、D、E。如果他们做了前面的操作,他们会按照以下顺序看到帖子B->A 此外,当p,Q被

上下文:我们正在实现一个新闻应用程序。现在,您可以假设所有用户的新闻都是相同的,并根据我们设置的参数(根据趋势和日期)维护订单

问题:我们不确定跟踪用户阅读内容的最佳实现是什么。我们希望能够配置一种跟踪用户阅读内容和未阅读内容的方式

假设:您可以假设数据库中的帖子按时间降序排列

因此,理想的情况是:当有帖子时:从应用程序中的服务器获取A、B、C、D、E,用户读取A、B。现在,用户只有在检查下一篇帖子时才能看到C、D、E。如果他们做了前面的操作,他们会按照以下顺序看到帖子B->A

此外,当p,Q被添加到数据库中时,现在,用户必须按照p->Q->C->D->E等顺序查看下一篇文章

示例:假设我们的应用程序中现在有20条新闻,Gavin拿起手机开始阅读我们的应用程序。在使用过程中,他发现自己忙于其他工作,因此在阅读了5篇新闻帖子后退出了应用程序

我们现在面临的挑战是找出最好的方法来确保加文不必重读他已经读过的5篇文章

我们认为可以解决这个问题的一种方法是使用索引。我们可以假设上下文中提到的文章的顺序是一致的,因此我们可以使用索引跟踪新闻顺序中Gavin最后一次出现的位置,并根据该索引向他显示新闻

然而,这种方法的一个问题是,当加文拿起他的手机并再次使用我们的应用程序时,我们很容易会有5篇新帖子。因此,如果我们有基于日期的新闻,从技术上讲,这种索引方法意味着我们省略了5篇未读的新文章,而不是5篇已读的旧文章

我们还考虑过维护三个列表:已读、未读和新建,以便只获取不在列表中的帖子。例如,在我的初始示例中:A-B-C-D-E最初处于未读状态。然后,在用户读取A-B之后,read变为A-B。同时,当数据库中添加P-Q时,P-Q作为P-Q-C-D-E添加到未读帖子列表中。


你如何解决这个问题?任何建议都是受欢迎的,因为我们认为,在解决问题时,我们没有跳出框框。谢谢!:)

当我第一次读到这个问题时,我脑海中的解决方案也是有两个不同的列表已读未读,新的列表被添加到未读列表的末尾,未读列表以相反的顺序显示,因此最新的列表位于顶部。然而,这是最有效的方法吗?可讨论的。例如,若新数字的数量增加了很多,那个么内存将效率低下。但我假设总体上是小数字