NodeJS 使用Angular应用程序运行Lighthouse后注册卸载侦听器

ac1kyiln  于 2023-01-30  发布在  Node.js
关注(0)|答案(3)|浏览(150)

我使用Lighthouse执行了测试,并返回了问题-〉Registers an unload listener(注册卸载侦听器)

  • unload事件不能可靠触发,侦听它可能会阻止浏览器优化,如向后-向前缓存。请考虑改用pagehidevisibilitychange事件。URL -〉polyfills.js:小行星17 *

聚合填充

chunk {11} polyfills-es5.490b14415b7cca5be47f.js (polyfills-es5) 129 kB [initial] [rendered]
chunk {10} polyfills-es2015.35d05f7e533d01d161a7.js (polyfills) 36.2 kB [initial] [rendered]

Ionic:
   Ionic CLI                     : 5.4.16
   Ionic Framework               : @ionic/angular 5.0.7
   @angular-devkit/build-angular : 0.1002.0
   @angular-devkit/schematics    : 10.1.7
   @angular/cli                  : 10.0.1
   @ionic/angular-toolkit        : 2.3.3

Cordova:
   Cordova CLI       : 10.0.0
   Cordova Platforms : 6.0.0, android 8.1.0, browser, ios 5.1.1
   Cordova Plugins   : not available

Utility:
   cordova-res : not installed
   native-run  : not installed

System:
   NodeJS : v14.15.0 (C:\Program Files\nodejs\node.exe)
   npm    : 6.14.8
   OS     : Windows 10

这是我的第一个应用程序,我是新开发的,我没有找到这个问题的解决方案。我如何在polyfills中应用卸载事件?

k97glaaz

k97glaaz1#

可能的原因是安装在您的应用程序中的某个第三方库正在进行此调用。此问题已在Angular GitHub repository上讨论过,他们已确认此调用不是直接来自Angular。罪魁祸首可能是fbevents.js(如果您使用fb跟踪)或您自己在应用程序中使用window.onunload事件。
如何找到这是什么原因-〉转到源选项卡,右键单击“顶部”并选择“在所有文件中搜索”。

键入**addEventListener(“unload”**这应该会告诉您导致此问题的实际原因。

llew8vvj

llew8vvj2#

TLDR:确保在生产部署中仔细检查灯塔结果。
我发现当我使用localhost进行开发测试时,我的Angular/Ionic应用程序正在注册此事件侦听器,但灯塔没有诊断出我的生产部署中的问题。
如果此事件侦听器是事件侦听器/特性列表的一部分,则是有意义的,这些事件侦听器/特性仅由Angular用于帮助开发/调试/实时重载等,但在构建生产版本时被删除。

vbopmzt1

vbopmzt13#

是不是和你们网页上的广告服务有关?因为我博客上的创世纪广告引起了这个问题。如果我说错了,请告诉我。

相关问题