Angular universal - 为客户端缓存的服务器端请求

时间:2017-05-30 12:11:20

标签: angular caching angular-universal server-rendering

我在角度通用应用程序中看到过许多关于缓存客户端数据的文章,因此它不会复制已经在服务器上解析的客户端上的请求。

我只是不了解数据如何从服务器传输到客户端。我是否将JSON注入预渲染的HTML或者我错过了其他什么?

1 个答案:

答案 0 :(得分:5)

从角度5开始,角度核心内部有一个名为TransferStateModule的模块可以为您完成此任务。 https://angular.io/api/platform-browser/TransferState

您只需将API响应与StateKey(基本上就像字符串一样)一起添加到服务器端的缓存中,然后在将index.html文件发送到客户端之前将其作为Json写入DOM,在那里您要求StateKey并从Json获得结果。

在官方的Universal Starter Kit中,您可以看到注册的位置和内容:https://github.com/angular/universal-starter

更新Angular 6

您不需要自己设置状态键。新的TransferStateModule有一个HttpClient拦截器,可以自动设置键!如果你想要更多控制,你仍然可以自己动手,但现在它就像添加模块一样简单(最新的通用入门套件默认导入它!)