[英]Proper way to asynchronously load data in AngularJS
让我们考虑以下情形:一些数据(JSON格式)需要显示给最终用户。 这样做的通常方法(或者至少是我自己的方法)是使用Angular 工厂返回数据,将工厂包括在控制器中,并使用loop语句/ 指令显示数据。
但是,数据每天都在增长(从数十个增加到数千个),并且在视图中添加了一些精美的动画,从而导致视图的加载时间达到了天空。
通常,有多种加载数据的方式(例如, 延迟加载 , $ q service ),但我想知道哪种方法更异步地最可靠地提供数据。
除了Martijn Welker的答案以外,这里还有其他几点可能会有所帮助。
1.首先,加载页面后始终获取大数据。 加载页面时,您可以获得诸如全局统计信息之类的小数据(使用解决方法,但表中的数据应始终在页面加载后出现)。 在执行此操作时,为用户提供表格部分的加载图标。
2.您是否直接将数据显示为JSON(例如JSON文件)给用户? 您可以通过逐步显示数据(JSONblob.com所做的事情)来改善这一点。 它显示了顶级键,单击某个键后,会显示下一个键。 您的后端也可以设计为可以针对不同的级别和密钥提出不同的请求。 或者,您可以具有以下标题:
user > profile > eduction
并显示该键的数据,同时使标题可单击。您还可以存储以前的详细信息(小数据),以防用户要返回。
3.尝试使用分页(后端或前端选择)。 如果您不对数据及其只读内容进行任何排序/过滤工作,则可以使用单向绑定(Angular 1.3+)将手表从列表中删除。 即使,我也不知道显示json :)时需要分页。 除此之外,您可以使用plainJs创建此列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.