我正在为之工作的公司有一个Web应用程序,其中客户端代码是整体后端代码的一部分。客户端通过模板化为客户端html的变量传递它的状态。客户端是运行Angular的SPA。
参数是它在客户端启动时节省了4个HTTP请求。
(以下代码不是真正的代码,更多只是我的意思的说明)
<body>
<script>
const state = JSON.parse( {{ generateJSONStateServerMethod() }} )
</script>
</body>
就个人而言,我更喜欢客户端是一个单独的仓库,如果它需要设置4个http请求,那就这样吧。至少你可以快速画画。
然而,这只是一种偏好,而且我没有足够的经验来就此事持有知识渊博的意见。
哪个更好,为什么?
答案 0 :(得分:1)
因此,如果您从用户的角度衡量性能,通常较少的请求意味着更好的性能(通常)。呈现页面的最大延迟通常是它对服务器获取所需资源的所有请求,其中很大一部分只是涉及的网络延迟。如果您为移动客户或非宽带客户提供服务,那就更加引人注目了。
也就是说,根据配置信息更改的频率,您还有其他选择,包括:
生成可以在普通脚本标记中加载的.js文件 (而不是作为模板项嵌入)
将这四个请求合并到一个服务器上,然后创建一个 Ajax调用
您提出的建议也有其优点(不是您需要4个请求的部分,而是您不渲染服务器端模板的部分)。通过使所有HTML静态,您可以从CDN或常规(静态文件)Web服务器提供它,这肯定会减少服务器端滞后和(可能)成本。
答案 1 :(得分:1)
我认为@Paul所说的是有效的,以及您在代码中所做的事情,它就像大多数现代框架所支持的server rendering
功能(如React)。 />
因此,在第一次请求发回HTML之前,我没有看到在服务器上设置状态的重大事项。