Angularjs获得了一个巨大的json文件的请求

时间:2014-04-20 11:30:59

标签: javascript jquery json angularjs

我需要将数据库中的一些数据显示给用户。数据位于json文件中,并且具有相当大的尺寸。 json文件的大小约为15MB。我创建了一个服务并使用promise api来成功请求并加载数据并通过对div进行ng-repeat来向用户显示。现在,如您所知,页面将仅在文件可用时显示数据,并且获取获取15MB文件的get请求需要花费大量时间。我看到Firefox在某些情况下会在一段时间后停止加载文件。现在我的问题是Angular执行此类任务的方式是什么。

我正在考虑做一些事情,比如首先只显示json文件中的几个条目,然后滚动页面的其余部分将由剩余的数据填充,但我想这会赢;因为当获取请求时它是可能的制作完成后,它会首先完全下载文件,然后显示数据吗?

Angular提供了一种名为ng-cloak的东西,但这只是为了避免闪烁。是否有类似ng-cloak的角度,我可以使用? 任何其他想法或如何处理这种情况或实现这一点的角度方式是什么??

2 个答案:

答案 0 :(得分:6)

基于您处理基本上巨大的JSON有效负载的要求。 FWIW你有两个选择:

  • 您的服务器支持HTTP / JSON流式传输

    创建一个角度onreadystatechange处理程序并使用像oboe.js

  • 这样的流式JSON解析器
  • 您的服务器不支持HTTP / JSON流式传输

    执行其他人的建议并提供对该有效负载的分页访问权限,以便浏览器可以按需加载块。

答案 1 :(得分:1)

让你的后端以块的形式传递文件,这样你的角度前端就可以一次检索到它的一部分。

类似的东西:

/后端/ getentries跳过= 500安培;计数= 100

让你的前端反复调用后端,同时向上计数跳过并将结果附加到你前面已经拥有的任何内容中。