0

您好我正在我现有的基于 Angular 1 的 UI 项目中开发一个小部件模块。这个小部件应该包含实时信息。

根据我的设计,我想在发出第一个请求时从节点服务器(可能使用 express js)向客户端发送 html 视图。但由于数据需要实时,我无法每分钟发送完整的 html(每次都会重复模板传输)。

那么我是否有可能将模板与一组 java-script 函数一起发送给客户端,以便当客户端想要刷新数据时,他只会调用发送的 javascript 函数,并且在内部我的 javascript 函数将进行休息调用,从服务器获取 json 响应并再次重新填充最初发送的 html。

这样,我计划使用服务器提供的逻辑在服务器端进行初始渲染,然后在客户端进行后续渲染。在这里,客户端将不知道它正在渲染哪个小部件以及它具有什么功能。所有这些都将由服务器发送的 js 控制。

请让我知道如何实现这一点,因为我发现 ejs 没有达到这个目的。使用 ejs,我只需要将所有逻辑都放在服务器端。而我计划在运行时将逻辑从服务器传输到客户端。

此外,如果我的设计有一些严重的问题,请提出一些其他的替代方案。谢谢

4

1 回答 1

0

Angular1不友好server side rendering,因为它需要浏览器 DOM。使用任何模板引擎也无济于事,因为它们生成的 html 不会被 Angular 应用程序拾取。

使用 phantomjs 无头浏览器实例通过运行您的 angular1 应用程序代码生成 html,然后当脚本加载后,angular 将在客户端运行。

我建议切换到Angular2React因为他们很server side rendering友好

于 2016-12-07T20:41:24.807 回答