如何“减少外部脚本的JavaScript执行时间”?

3

我感觉我能做的事情不多,但我想问一下这个问题,看看是否有遗漏的地方。

如何“减少外部脚本的JavaScript执行时间”?

当我使用PageSpeed Insights工具时,我的当前分数为56分,其中最大的问题似乎是一些外部脚本的执行时间问题。以及它们的缓存...但那是另一个问题。

https://load.sumo.com 总计:733毫秒 脚本评估:587毫秒 脚本解析:128毫秒

https://sumo.b-cdn.net/virtual/####/client/js/services/services.js 总计:436毫秒 脚本评估:212毫秒 脚本解析:90毫秒

https://connect.facebook.net/signals/config/###?v=2.8.33&r=stable 总计:215毫秒 脚本评估:160毫秒 脚本解析:53毫秒

https://static.leadpages.net/leadboxes/current/embed.js 总计:133毫秒 脚本评估:123毫秒 脚本解析:10毫秒

...


1
你把脚本加载在哪里?如果你把它们加载在页面头部,那么它们会阻塞页面,这是一个很大的问题。如果你把它们加载在页面主体中,可以进行一些优化,比如并行加载和预取。但你说得对,没有办法让脚本做更少的工作。你能做的只是优化工作的时间,或者干脆移除脚本,不执行这项工作。 - undefined
1
脚本已经“正确”加载。现在我只是试图弄清楚是否有什么我可以做来改善JavaScript的执行时间,但似乎没有办法。 - undefined
我并不怀疑它们是否正确加载。我是说,根据你加载它们的方式,你可以优化它们解析和执行所需的时间。脚本的解析是其中很大一部分,并且如果它花费的时间过长且没有得到适当处理,可能会导致用户延迟。再次建议您展示一下您如何加载这些脚本,我们可能能够帮助您大大减少它们对页面性能的影响,这似乎是您真正关心的。 - undefined
1个回答

6

您对这些外部脚本的操作是无法控制的。除了不包含它们之外,您能做的唯一事情就是延迟它们的加载。

一种方法是使用defer属性。

<script defer src="https://example.com/script.js"></script>

这样可以让页面在脚本加载和执行之后继续加载和执行。虽然这种方法并不适用于所有脚本,但它适用于大多数脚本。您从提供者(如Facebook)包含的许多脚本标记已经具有延迟加载的替代代码。

参见:https://flaviocopes.com/javascript-async-defer/


谢谢 Brad。我已经将脚本延迟加载了,所以这很好。那么,我猜这就是拥有此功能的代价了。 - undefined
@InsuredApple 是的。如果你是一个足够重要的人物,你可以试着去找那些编写脚本的人,让他们优化一下。不过很有可能他们已经在关注负载和执行时间,并且已经进行了相当多的优化。我可以确定的是,比如Facebook一直在努力优化他们的SDK。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接