提问人:Andrew 提问时间:8/15/2015 更新时间:8/15/2015 访问量:608
在客户端的选项卡中处理/显示大量数据
Handing/Displaying large amounts of data in tabs on client side
问:
我正在开发一个应用程序,它本质上是:用户选择一组数据,在页面中创建一个新选项卡,并从 restful 服务加载数据(可能需要 ~10 秒才能显示大量数据)
我想知道是否有人对处理这样的事情有任何建议,或者任何例子。目前我有三种方法,但似乎都不理想:
- 将数据存储在 angular 的 tab 对象中(使打开新数据和导航非常慢)
- 每次选择该选项卡时加载数据(最多可能需要 ~10 秒,但不会影响其他任何内容)
- 将数据托管在不同的页面上并通过 iframe 显示,但我决定不这样做,因为当用户选择不同的选项卡时,iframe 会重新加载。
有没有人处理过类似的用例,并为那些不确定该走哪条路的人提供了一些建议?谢谢。
答:
0赞
Anthony Garant
8/15/2015
#1
在这种情况下,您应该尝试的第一件事是优化您的请求。
一个好的策略是拆分您的请求。如果需要 10 秒,则用户很可能可以在窗口中查看更多数据。因此,您可以执行多个较小的请求,并在它们解析时呈现它们。这样,您的用户将立即看到一些内容,并且不会意识到正在加载更多内容。您还应该研究延迟加载 基本上,只有在用户绝对需要时才发出请求。
如果这是不可能的,你可以急于加载选项卡中的所有数据(尽快发出所有请求),但不要立即呈现它,以避免通过使 angular 在其摘要周期中监视大量不可见的数据来减慢导航速度。您可以通过在选项卡内容上使用 ng-if 指令(ng-if 从 dom 中删除内容)来做到这一点。但是,这不是最佳选择,因为如果用户速度太快,数据可能还没有准备好。
评论
0赞
Andrew
8/16/2015
您好,感谢您的回复。我看了延迟加载,但由于某种原因忘记了它。我想一个问题仍然是当前呈现的内容仍然会减慢页面速度,尽管我觉得可能没有办法解决这个问题。在角度范围内存储东西是我目前正在做的一件事。再次感谢。
0赞
Anthony Garant
8/16/2015
那么,您是否优化了您的请求?你尝试过什么策略?关于呈现的内容减慢了导航速度,我建议您阅读 Misko Hevery 的这个精彩答案。stackoverflow.com/questions/9682092/databinding-in-angularjs
0赞
Andrew
8/16/2015
我还没有开始,但我计划明天尝试一些,看看结果。主要是延迟加载,并尝试使用急切加载进行分页。我会阅读(并尝试理解)那篇文章,非常感谢。
上一个:在浏览器中使用 C++ DLL
下一个:客户端图像处理最佳实践
评论