【发布时间】:2017-04-05 14:18:51
【问题描述】:
我知道 Angular Universal 仍在开发中。所以我考虑过将 Angular Universal 用于 Web 应用程序,该应用程序会定期从外部 API 服务器(大约每 10 秒通过 Http 服务)提取数据。然后,此数据会显示在 Web 应用程序上。
我遇到了几个我还没有找到简单解决方案的问题:
- Angular Universal 显然需要来自 API 服务器的数据来预渲染页面。每次请求 Web 应用程序 HTML 时,我都不想从 nodeJS 查询 API 服务器。如果 nodeJS 服务器“行为”完全像一个客户端 Web 应用程序实例,并且每 10 秒查询一次 API 服务器,以 10 秒为间隔“缓存”这些数据并使用它来呈现 HTML,就足够了。
- 客户端 Web 应用程序将来自 API 服务器的数据存储在某个私有成员变量中。这个成员变量然后用于使用 ngFor、绑定等从它构建 HTML。但是这个成员变量在开始时是空的/未定义的。我不希望客户端 Web 应用程序在启动时擦除预渲染的 HTML,因为这会破坏 Angular Universal 的一些想法(不是 SEO,而是减少加载时间)。
我希望您了解我在这里想要实现的目标。您是否知道如何解决这个问题,或者甚至有“官方”的方式来做到这一点?我敢肯定,我不是唯一一个尝试这样做的人。
【问题讨论】:
-
你找到解决这个问题的方法了吗?
-
@RaymondtheDeveloper 不幸的是没有
-
@Julian 对此有何更新?
-
我没有继续这个项目。但现在我有了更多经验,我建议在节点 js 服务器前使用缓存,它应该可以工作。
-
for 2. 使用 Angulars TransferState: angular.io/api/platform-browser/TransferState 。一个例子可以在这里找到ganatan.com/tutorials/transfer-state-avec-angular
标签: javascript node.js angular angular-universal