Angular8 SSR,首次输入延迟慢

时间:2019-08-19 09:44:48

标签: javascript node.js angular pagespeed angular8

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

enter image description here

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

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

Device: Mobile
Audits: All
Throttling: Simulated Slow 4G, 4X CPU Slowdown
Clear Storage

在此之后,我使用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;

这是我得到的结果> enter image description here

当然,这还不错,但是我想看看Angular是否有可能将“第一输入延迟”控制在100ms以下。

如果我删除了clear storage参数,那么我在下面。
如果我不输入任何节流参数,那么我会在下面。

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

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

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

我了解LightHouse审核是基于您的计算机性能。使用Pagespeed insight可获得几乎相同的结果,但由于服务器性能较弱,因此速度索引和第一时间已到。

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

0 个答案:

没有答案