严格的REST与从服务器端通过对象文字传递状态?

时间:2018-01-17 05:37:47

标签: javascript performance

我正在为之工作的公司有一个Web应用程序,其中客户端代码是整体后端代码的一部分。客户端通过模板化为客户端html的变量传递它的状态。客户端是运行Angular的SPA。

参数是它在客户端启动时节省了4个HTTP请求。

(以下代码不是真正的代码,更多只是我的意思的说明)

<body>
    <script>
        const state = JSON.parse( {{ generateJSONStateServerMethod() }} )
    </script>
</body>

就个人而言,我更喜欢客户端是一个单独的仓库,如果它需要设置4个http请求,那就这样吧。至少你可以快速画画。

然而,这只是一种偏好,而且我没有足够的经验来就此事持有知识渊博的意见。

哪个更好,为什么?

2 个答案:

答案 0 :(得分:1)

因此,如果您从用户的角度衡量性能,通常较少的请求意味着更好的性能(通常)。呈现页面的最大延迟通常是它对服务器获取所需资源的所有请求,其中很大一部分只是涉及的网络延迟。如果您为移动客户或非宽带客户提供服务,那就更加引人注目了。

也就是说,根据配置信息更改的频率,您还有其他选择,包括:

  1. 生成可以在普通脚本标记中加载的.js文件 (而不是作为模板项嵌入)

  2. 将这四个请求合并到一个服务器上,然后创建一个 Ajax调用

  3. 如果它变化很少(或从不)使配置文件成为JS的一部分 捆绑/构建过程(你 使用一个,对吗?)并打包它 与其余的Angular代码一起使用。
  4. 您提出的建议也有其优点(不是您需要4个请求的部分,而是您不渲染服务器端模板的部分)。通过使所有HTML静态,您可以从CDN或常规(静态文件)Web服务器提供它,这肯定会减少服务器端滞后和(可能)成本。

答案 1 :(得分:1)

我认为@Paul所说的是有效的,以及您在代码中所做的事情,它就像大多数现代框架所支持的server rendering功能(如React)。 /> 因此,在第一次请求发回HTML之前,我没有看到在服务器上设置状态的重大事项。