Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Lighthouse审计:脚本评估与脚本解析_Javascript_Html_Performance_Google Chrome Devtools_Lighthouse - Fatal编程技术网

Javascript Lighthouse审计:脚本评估与脚本解析

Javascript Lighthouse审计:脚本评估与脚本解析,javascript,html,performance,google-chrome-devtools,lighthouse,Javascript,Html,Performance,Google Chrome Devtools,Lighthouse,在chrome开发者工具中运行lighthouse审计时,我收到了以下javascript执行报告。我发现main.js在脚本评估(455ms)方面比脚本解析(5ms)花费了大量时间。但我无法确定这个脚本的评估时间是多少?下载脚本需要多长时间?我怎样才能减少它 根据以下Lighthouse参考资料,执行任何JS文件都有四个主要成本: 网络成本 解析和编译成本:JavaScript在主线程上被解析和编译。当主线程忙时,页面无法响应用户输入 执行成本:JavaScript也在主线程上执行。如果您的

在chrome开发者工具中运行lighthouse审计时,我收到了以下javascript执行报告。我发现main.js在脚本评估(455ms)方面比脚本解析(5ms)花费了大量时间。但我无法确定这个脚本的评估时间是多少?下载脚本需要多长时间?我怎样才能减少它


根据以下Lighthouse参考资料,执行任何JS文件都有四个主要成本:

  • 网络成本
  • 解析和编译成本:JavaScript在主线程上被解析和编译。当主线程忙时,页面无法响应用户输入

  • 执行成本:JavaScript也在主线程上执行。如果您的页面运行 在真正需要它之前,需要编写大量代码,这也会耽误您编写代码的时间 交互式,这是与用户如何 感知你的页面速度

  • 内存成本

我相信Lighthouse术语中的评估时间是解析脚本后将整个文件加载到内存中的时间。换句话说,您必须检查繁重的文件,并尝试优化文件本身中的代码。以下是我从研究您正在检查的同一个问题中学到的一些事实:

  • 脚本评估是从解析脚本到执行脚本(主要是将代码加载到内存中)之间的阶段
  • 未使用的代码会对解析时间产生负面影响,但不会影响计算和执行时间
  • 解析时间随着脚本代码大小的增加而增加
  • 脚本计算时间随着所用代码量的增加而增加
  • Lighthouse仅在脚本影响TTI时才将其标记为阻止主线程。例如,如果在未使用的情况下将10 MBs脚本文件作为渲染阻止资源添加到任何页面,Lighthouse会将其标记为渲染阻止资源,但不会将其标记为阻止主线程问题
  • 脚本求值是运行页面需要多少代码的指示器

解决方案可以是将文件分为两个文件,一个是最初应加载的关键文件,另一个可以延迟以优化性能

这是实际运行脚本的时间(它正在被
eval
ed)。拆分文件会减少TTI吗?这将减少TBT,但不确定TTI。