Angularjs真的需要每个资源两个请求吗?

Angularjs真的需要每个资源两个请求吗?,angularjs,Angularjs,我正在尝试Angularjs,我真的很喜欢到目前为止我所看到的。然而,有一件事对我来说似乎很奇怪:据我所知,Angular对创建的每个动态视图至少需要2个请求:第一个用于文档,第二个用于使用$http服务的数据。 这似乎是一个令人难以置信的劣势,原因如下: 网络延迟增加了一倍 在对第二个请求的响应被预先处理之前,用户看不到任何有用的东西 想象一下,一个页面上有一个动态创建的项目列表。第一个请求提取文档,第二个请求获取要显示的数据。用户将在短时间内得到一个空列表,直到处理对第二个请求的响应为止

我正在尝试Angularjs,我真的很喜欢到目前为止我所看到的。然而,有一件事对我来说似乎很奇怪:据我所知,Angular对创建的每个动态视图至少需要2个请求:第一个用于文档,第二个用于使用$http服务的数据。 这似乎是一个令人难以置信的劣势,原因如下:

  • 网络延迟增加了一倍
  • 在对第二个请求的响应被预先处理之前,用户看不到任何有用的东西
想象一下,一个页面上有一个动态创建的项目列表。第一个请求提取文档,第二个请求获取要显示的数据。用户将在短时间内得到一个空列表,直到处理对第二个请求的响应为止

虽然在数据完成之前不显示列表是可能的,但很明显,用户体验将受到双倍网络延迟的影响。我认为这是服务器端框架的一个主要缺点,服务器端框架提供的文档最初包含数据


我是否遗漏了某些内容,或者这是“设计”的限制?

您可以使用Your is right将数据最初包含在文档中。这适用于任何客户端框架,如angular,并且是一种可接受的实践。Angular缓存模板(文档片段),这样就不必在SPA中再次请求模板。这在一定程度上很好地缓解了这个问题。您可以很容易地按此处所述预加载视图:@jonnynnoj我认为,ng init在这里没有帮助,因为在ng init处理数据之前,数据需要在那里,所以它应该是从server.Thx返回的脚本或模型数据的一部分,以获得有用的输入。我在考虑使用SpringMVC这样的精益服务器端框架来服务文档请求,并在某些页面上添加初始值。ng init可用于此目的。不幸的是,这导致在服务器端使用MVC框架,而在客户端使用另一个MVC框架。似乎是混合服务器端和客户端框架与接受双倍网络延迟之间的折衷。