Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过初始请求发送有效负载数据?_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 如何通过初始请求发送有效负载数据?

Javascript 如何通过初始请求发送有效负载数据?,javascript,html,angularjs,Javascript,Html,Angularjs,比方说,我们有一个页面,其中有一个包含用户列表的表。我可以用用户表来呈现HTML,但这对Angular来说不是很友好。我也可以使用AJAX将数据返回到服务器,但随后我必须等待初始页面呈现并发出额外的HTTP请求,这会增加额外的延迟 是否有一种方法可以将有效负载数据与初始请求一起发送,这样我就不必使用AJAX来获取数据,并且仍然可以使用角度绑定(例如ng repeat)?在不执行Javascript的情况下访问服务器数据的唯一方法是让服务器在网页的初始请求中包含该数据。这需要使用服务器端语言,如P

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


是否有一种方法可以将有效负载数据与初始请求一起发送,这样我就不必使用AJAX来获取数据,并且仍然可以使用角度绑定(例如ng repeat)?

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

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

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


如果您不想使用Ajax调用,那么就不要使用AngularJS

非常感谢你们,这个解释帮助我理解了不仅仅是不喜欢的问题:)好的,但SEO呢?如果我使用angularjs获取例如用户列表,搜索机器人将只看到角度占位符而不是用户列表,因为它无法运行脚本。但如果我使用PHP加载用户列表,搜索机器人将毫无问题地获取用户列表。AJAX应用程序的SEO是一个棘手的怪物。如果SEO是重要的,并且你想要像AngularJS这样的Ajax框架的速度,你一定想阅读关于网站截图的文章,如Google的说明书中所详述的:这是非常有可能的,但是在构建单页应用程序时,这绝对是一个需要考虑的问题。如果你想看一个演示,只需看看谷歌自己的AngularJSAPI页面。只需谷歌“NG隐藏”并从docs-angularjs-org-dev.appspot.com中查找结果。该站点是Angularjs站点。‎