我应该如何发送/接收大型搜索结果数组(NodeJS,AngularJS)

时间:2016-02-06 06:39:25

标签: arrays angularjs node.js http search

我有一个应用程序,它使用NodeJS作为后端,AngularJS作为前端。当我使用Angular的$ http向我的后端发送搜索查询时,后端会返回一个搜索结果数组。

我通过在远程服务器上测试我的应用程序发现,慢速的互联网连接确实会阻碍搜索。特别是,Angular在发送所有搜索结果之前无法使用搜索结果。这对于少量结果(<1,000)是可以的,但是当有很多搜索结果时我想改进它。

我可以使用哪种策略,以便Angular可以在到达时显示每个搜索结果,而不是等待整个数组的发送?

2 个答案:

答案 0 :(得分:1)

  1. 我会使用websockets一次发送一个结果(不知道为什么要这样做,请查看编号2)。

  2. 我会将后端的结果分页到一个合理的数量(50可能会根据你加载的关系进行操作)并实现一个无限滚动,以异步方式获取下一个项目({{3 }})。

答案 1 :(得分:0)

有两个必要的要点:

  1. 分页:你应该拆分结果数组并首先发回第一个X结果。如果用户对其他人感兴趣,请发回更多。我确定,您的ORM中有skiplimit,请使用这些!)

  2. 压缩数据。我建议您使用Google protocol buffers