0

比方说,例如,我们有一个页面,其中有一个包含用户列表的表格。我可以使用用户表呈现 HTML,但这对 Angular 不是很友好。我也可以通过 AJAX 将数据返回到服务器,但是我必须等待初始页面呈现并发出额外的 HTTP 请求,这会增加额外的延迟。

有没有办法将我的有效负载数据与我的初始请求一起发送,这样我就不必为数据使用 AJAX 并且我仍然可以使用角度绑定(例如 ng-repeat)?

4

1 回答 1

0

在不执行 Javascript 的情况下访问服务器数据的唯一方法是让服务器在对网页的初始请求中包含该数据。这需要使用服务器端语言,例如 PHP、Ruby 或 ASP.NET,这些语言可以查询数据,将其添加到您的网页,并在其初始 http 响应中发送更新的网页。

然而,这个概念完全破坏了使用客户端框架(如 AngularJS)的目的。Angular 想要负责你的数据访问,我建议让它去管它。Angular 不知道它没有检索到的数据,所以你还必须动态修改你的页面脚本来告诉 Angular 服务器检索到的数据。这一切都在走上一条你不想走的黑暗道路。你只会做双重工作。

如果您担心您的用户会在页面加载和初始数据加载之间看到短暂的延迟,您甚至可以选择使用 ng-cloak 和 ng-bind 等指令将屏幕保持空白,直到初始数据加载。如果您担心初始页面加载后检索数据的延迟,请记住,与仅更新页面单个部分的 ajax 调用相比,整页 HTTP 请求和整页重新加载所需的时间要长得多。

如果您不想使用 Ajax 调用,就不想使用 AngularJS。

于 2013-05-21T14:51:49.383 回答