Angular8 SSR,首次输入延迟慢

Mat*_*ron 5 javascript pagespeed node.js angular angular8

我尝试构建具有最佳性能的Angular应用。
这个程序很简单:

在此处输入图片说明

一个页眉(带有两个链接),一个页脚,主页和关于页面。
该应用程序在这里可用

我使用Chrome的LightHouse查看指标。
使用默认指标:

Device: Mobile
Audits: All
Throttling: Simulated Slow 4G, 4X CPU Slowdown
Clear Storage
Run Code Online (Sandbox Code Playgroud)

在此之后,我使用Nginx代理通过gzip提供所有资产。

  gzip on;
  gzip_vary on;
  gzip_proxied any;
  gzip_types text/plain application/json text/xml text/css text/js text/javascript application/javascript image/svg+xml;
  gzip_min_length 1000;
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果> 在此处输入图片说明

当然,这还不错,但是我想看看Angular是否有可能使First Input Delay小于100ms。

如果我删除了清除存储参数,则会出现以下情况。
如果我不输入任何节流参数,我将处于下面。

但是我想使用这些参数将其设置为100ms以下。因此,当我在生产环境中构建产品时,可能会错过一些参数,该项目基于Angular SSR hero应用程序

我看到当我呈现不带JS文件的网站时,只要没有javascript交互并且我在First输入交互中的时间为20毫秒,它仍然可以正常工作,因此也许有一种方法可以不同地加载JS脚本。它正在使用> = 1500ms的超时,但这不是一个好习惯。

我想知道Angular SSR是否可以使用<100ms的首次输入时间延迟来渲染,或者该堆栈是否实际无法渲染。

我了解LightHouse审核是基于您的计算机性能。我使用Pagespeed洞察力获得了几乎相同的结果 ,但由于服务器性能较弱,速度索引和第一个字节的到达时间除外。

Github项目:https : //github.com/mlescaudron/angular-app-optimized
还有要在本地测试的命令:

# Docker config for nginx with gzip compression
docker run -d --name web-server --network=host nginx:1.17.3-alpine
docker cp nginx.conf web-server:/etc/nginx/nginx.conf
docker exec -ti web-server nginx -s reload

# Build and run the SSR app
yarn
yarn build:ssr && yarn serve:ssr

# Access it at http://localhost
Run Code Online (Sandbox Code Playgroud)