我有一个应用程序,它使用NodeJS作为后端,AngularJS作为前端。当我使用Angular的$ http向我的后端发送搜索查询时,后端会返回一个搜索结果数组。
我通过在远程服务器上测试我的应用程序发现,慢速的互联网连接确实会阻碍搜索。特别是,Angular在发送所有搜索结果之前无法使用搜索结果。这对于少量结果(<1,000)是可以的,但是当有很多搜索结果时我想改进它。
我可以使用哪种策略,以便Angular可以在到达时显示每个搜索结果,而不是等待整个数组的发送?
答案 0 :(得分:1)
我会使用websockets一次发送一个结果(不知道为什么要这样做,请查看编号2)。
我会将后端的结果分页到一个合理的数量(50可能会根据你加载的关系进行操作)并实现一个无限滚动,以异步方式获取下一个项目({{3 }})。
答案 1 :(得分:0)
有两个必要的要点:
分页:你应该拆分结果数组并首先发回第一个X结果。如果用户对其他人感兴趣,请发回更多。我确定,您的ORM中有skip
和limit
,请使用这些!)
压缩数据。我建议您使用Google protocol buffers。