Angular Universal + External API

我知道Angular Universal还在发展中。 所以我曾经想过使用Angular Universal来定期从外部API服务器(大约每10秒通过Http服务)提取数据的Web应用程序。 这些数据然后显示在networking应用程序上。

我遇到了几个问题,我还没有find一个简单的解决scheme:

  1. Angular Universal显然需要来自API服务器的数据预渲染页面。 每次请求Web应用程序HTML时,我都不想从nodeJS查询API服务器。 如果nodeJS服务器“performance得像一个客户端的Web应用程序实例一样,并且每隔10秒查询一次API服务器就足够了”,则以10s为间隔“caching”这些数据并使用它来呈现HTML。
  2. 客户端Web应用程序将来自API服务器的数据存储在某个私有成员variables中。 这个成员variables然后用来从它构buildHTML与ngFor,绑定等,但这个成员variables是空的/未定义在开始的课程。 我不希望客户端的Web应用程序在启动时抹去分段的HTML,因为那样会打败Angular Universal(不是SEO,但减less了加载时间)的一些想法。

我希望你明白我在这里想达到什么目的。 你有一个想法如何处理这个问题,还是有一个“官方”的方式来做到这一点? 我确信我不是唯一一个试图做这样的事情的人。

Angular Universal不知道你的代码是服务器代码还是客户端代码,它只是把你的应用程序,并尝试在服务器上呈现它。 但正如你所提到的那样,有一段时间你希望服务器的行为与客户端不同。 例如,如果你有一个你希望Angular Universal会忽略的函数,把这行代码放在函数体的顶部。

if (typeof window === "undefined") return; 

或者如果你有一个场景,你需要服务器做一些不同于客户端做这个

 if (typeof window === "undefined") { // server code } else { // client code }; 

Angular Universal有两个常量isNode&IsBrowser

 if(isNode){ // it's Node Server } else { //it's Browser }