我需要将数据库中的一些数据显示给用户。数据位于json文件中,并且具有相当大的尺寸。 json文件的大小约为15MB。我创建了一个服务并使用promise api来成功请求并加载数据并通过对div进行ng-repeat来向用户显示。现在,如您所知,页面将仅在文件可用时显示数据,并且获取获取15MB文件的get请求需要花费大量时间。我看到Firefox在某些情况下会在一段时间后停止加载文件。现在我的问题是Angular执行此类任务的方式是什么。
我正在考虑做一些事情,比如首先只显示json文件中的几个条目,然后滚动页面的其余部分将由剩余的数据填充,但我想这会赢;因为当获取请求时它是可能的制作完成后,它会首先完全下载文件,然后显示数据吗?
Angular提供了一种名为ng-cloak的东西,但这只是为了避免闪烁。是否有类似ng-cloak的角度,我可以使用? 任何其他想法或如何处理这种情况或实现这一点的角度方式是什么??
答案 0 :(得分:6)
基于您处理基本上巨大的JSON有效负载的要求。 FWIW你有两个选择:
您的服务器支持HTTP / JSON流式传输:
创建一个角度onreadystatechange处理程序并使用像oboe.js
您的服务器不支持HTTP / JSON流式传输
执行其他人的建议并提供对该有效负载的分页访问权限,以便浏览器可以按需加载块。
答案 1 :(得分:1)
让你的后端以块的形式传递文件,这样你的角度前端就可以一次检索到它的一部分。
类似的东西:
/后端/ getentries跳过= 500安培;计数= 100
让你的前端反复调用后端,同时向上计数跳过并将结果附加到你前面已经拥有的任何内容中。