我可以将初始动态数据从基于RESTful api的服务器端传递到基于角度的前端页面吗

Can I pass along initial dynamic data from a RESTful api based server side, to an angular based front end page?

本文关键字:服务器端 于角度 前端 api 动态 数据 RESTful 我可以      更新时间:2023-12-29

我反复搜索,发现了关于使用客户端javascript或类似功能访问会话和请求范围数据的可能性的问题和答案。答案似乎是一贯的"不,你不能那样做"。但是,正如这里所描述的,Front Controller模式转发用于请求和响应的java对象,并通过表达式语言在浏览器中公开它们以供检索。

对我来说,这似乎是一个很好的方法,因为它在重定向的同时传递数据。换句话说,如果网页上有一个表,该表应该填充默认但当前更新的数据(比如下周的天气报告)。所有其他方法似乎都包括先加载网站,然后通过ajax或类似方法加载数据进行填充。

我已经开始研究有角度的、RESTful的api,甚至连基本的东西都很难掌握。angular的优点之一应该是它能够将前端代码划分为模块,并包括模板html,而无需单独加载它们。但在RESTful api中,我似乎无法传递要在页面上显示的动态初始值。

因此,对于RESTful api结构,我是否正确地假设我需要首先加载页面,然后通过$http服务检索数据?如果是这样的话,为什么要设计它,让我需要向服务器发出双重(或多重)请求?如果没有,当服务器重定向到页面时,我如何将数据传递到页面?我一开始使用重定向是不是错了?

知道这是一个老问题,不确定我是回答这个问题的最佳人选,但我对此(或类似的问题)有点挣扎。

第一个问题的答案可能更多地与渲染和web浏览器如何工作有关。(我可能错了,所以你可以责备我)。

当服务器收到http请求(即访问者打开www.yourpage.com)时,它将开始发送数据流。根据你的网页的方式,从index.html开始,在index.html中你会有很多钩子,比如section.html、css文件、图片和javascript文件。

一旦javascript文件开始到达,javascript引擎就开始处理代码(好吧,web浏览器开始将数据从发送到指定的程序或编译器)。一旦启动,它就可以作为一个单独的程序运行,这些程序与网络浏览器有一些挂钩。当它仍在启动时,浏览器渲染引擎将处理html代码,创建DOM对象和所需的所有其他部分。

至于服务器,在几乎所有情况下,数据都需要以文本字符串的形式从服务器端发送到浏览器,然后浏览器将其转发给编译器或解释器中运行的程序。如果您跟踪或窥探网络流量,您将看到JSON字符串经过。

您还必须等到程序或代码运行后才能发送JSON。对于web浏览器,它只是一个文本字符串,直接在浏览器中调用一个api来测试它。

这就是为什么您需要先启动java代码,然后对服务器进行api调用,然后将返回的字符串读取到某种结构中。

希望这能帮助