8

我知道 angular2 用于服务器端渲染。所以我想更多地了解它。

我对这种现象有以下疑问。

1.什么是服务端渲染?

2.它解决了什么问题?

3.它的应用是什么?

4.为什么使用服务器端渲染?

5.支持服务端渲染的技术有哪些?

6.在angular2中,服务器端渲染有助于实现哪些目标?

7.客户端和服务器端渲染的主要区别是什么?

8.哪些工具或框架可用于服务器端渲染?

提前感谢大家。

4

3 回答 3

7

Angular2 是客户端库,不用于服务器端渲染。然而,有一个项目Angular Universal旨在允许服务器处理 Angular 代码和模板。

1.一般来说,服务器端渲染 /SSR/ 是指使用服务器创建可以被浏览器(或其他客户端)消费的内容。

2.使用单页应用程序 /SPA/,如 Angular2 应用程序,最大的问题之一是初始加载。SPA 必须加载所有供应商和应用程序脚本,(可能从数据库加载内容)处理内容,最后渲染它。这可能需要很多时间,因此您的想法是使用 SSR 创建或“预呈现”初始页面。

3.使用它是因为服务器比客户端快,所以它可以大大提升应用程序的性能。这对搜索引擎机器人也很有帮助——当他们请求没有 SSR 的网站页面时,他们只会看到没有任何内容的空白页面(某些搜索引擎会加载并执行您的脚本)。

4. Angular Universal 在nodejs服务器上工作。我相信还有一个 PHP 版本,但它非常新鲜(我认为是 alpha 版本......)

5. / 6.见上文。

于 2016-02-22T12:17:09.287 回答
4

1)服务器端渲染在交付给客户端之前渲染已经在服务器上的视图。这意味着诸如数据绑定表达式之类的事情已经在服务器上解析,并且生成的 HTML 被传递给客户端,因此它可以立即由浏览器显示,而不是先执行 JS。

2) - 从加载到首次显示的时间更快
- SEO

3) 见 2)

4) - Angular2
- React AFAIK
- 可能还有很多其他人

5) 见 2

6)前者在服务器上呈现,后者在客户端上呈现:p为了能够在客户端上呈现,代码需要浏览器的抽象,服务器代码需要像浏览器一样生成HTML。在 Angular 中,这是通过完全抽象浏览器来完成的(这也使得应用程序更容易在 WebWorker 中运行,因为那里的代码也没有(或只有有限的)对浏览器 API 的访问权限)

于 2016-02-22T12:14:17.083 回答
0

尽管这个问题被解决了两次而且很漂亮,但我只是想为仍然使用它的用户添加一些东西。

  • SSR 主要解决抽象和更快、更安全的内容交付到浏览器。

  • 诸如状态\会话管理、用户帐户管理、用于 Web 服务的密码\令牌、支付网关详细信息之类的东西是您希望避免放在浏览器\客户端上的东西。

  • 解决此问题的主要技术\框架有:MEAN.IO MEAN.JS、express.js、nodes.js、meteor.js

  • 如果您来自 .net 世界,那么 MVC 是保持良好框架的最佳选择。

希望这能更清楚地说明它。

丹克。

于 2017-08-09T18:07:37.047 回答