我想知道当我想在我的网络应用程序中使用angularJs(或类似)时,从后端获取数据的正确方法是什么?
我看到的唯一方法是渲染html(带有js脚本的静态html – 例如angularjs),没有来自后端的数据,然后通过我的后端API的ajax请求下载数据.但我认为这个解决方案并不好,因为有许多HTTP请求:
例如,我有博客网站,我想在侧边栏上显示帖子,评论和相关帖子.所以我可能需要至少发出3个HTTP请求来获取数据,除非我准备API以在一个请求中获得所需的全部内容.
我还可以想象可能有更多HTTP请求的网站.这是一个正确的方法吗?它不会使服务器超载吗?或者我的思维方式错了?
解决方法
它是websockets或HTTP请求.准备API以获取所有一个请求是一种选择.另外两个选项是
XMLHttpRequest / iframe流,这是一种称为
Comet的技术方法.
我会选择websockets,因为它应该解决以前用iframe流等奇怪的应用程序解决的问题.如果浏览器不支持websockets,有些库可以正确处理回退:
web-socket-js(这需要一个websocket服务器)
Socket.IO(这有一个node.js模块,并且还在websocket协议之上实现了一种不必要的协议)
如果您选择旧方法,那么在路上会有很多问题,比如XmlHttpRequest.responseText while loading (readyState==3) in Chrome