删除未使用的 Javascript base.js (Youtube iframe api)

nat*_*teM 7 javascript youtube youtube-iframe-api pagespeed-insights

Google PageSpeedInsights 在我的报告中将 Base.js 标记为未使用的 Javascript。487kb 相当大了。似乎来自包括 Youtube 播放器 iframe api。是否需要此文件?如果需要,有人知道为什么它在报告中被标记为未使用的 JS 吗?

iframe API: https: //developers.google.com/youtube/iframe_api_reference

在 PageSpeedInsights 上被标记为未使用 JS 的大文件: https: //www.youtube.com/s/player/c88a8657/player_ias.vflset/en_US/base.js

Sam*_*ton 6

如果您想仅使用 HTML 来修复此问题,您可以使用该属性设置嵌入内容,以便在点击视频时加载srcdoc

srcdoc您基本上可以在属性内编写一个 HTML 链接,并且在单击其中的链接之前视频不会加载。

这是一个例子:

<!-- Reference: https://vumbnail.com/examples/srcdoc-iframe-for-lighthouse -->
<iframe
    srcdoc="
        <style>
            body, .full {
                width: 100%;
                height: 100%;
                margin: 0;
                position: absolute;
                display: flex;
                justify-content: center;
                object-fit: cover;
            }
        </style>
        <a
            href='https://www.youtube.com/embed/Q-X_ED4LHrQ?autoplay=1'
            class='full'
        >
            <img
                src='https://vumbnail.com/Q-X_ED4LHrQ.jpg'
                class='full'
            />
            <svg
                version='1.1'
                viewBox='0 0 68 48'
                width='68px'
                style='position: relative;'
            >
                <path d='M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z' fill='#f00'></path>
                <path d='M 45,24 27,14 27,34' fill='#fff'></path>
            </svg>
        </a>
    "
    style="max-width: 640px; width: 100%; aspect-ratio: 16/9;"
    frameborder="0"
></iframe>
Run Code Online (Sandbox Code Playgroud)

在属性内编写 HTML 可能有点笨拙,但它可以完成工作。

如果您不想进入并替换所有 YouTube ID,我在这里编写了一个简单的构建器:https: //vumbnail.com/embed-builder


小智 4

如果某个脚本列在“删除未使用的 Javascript”选项卡下,并不意味着整个脚本未使用,而是意味着一定量的脚本代码没有在页面上执行任何操作。

查找未使用代码的算法也不完美,我经常看到页面上根本没有使用的脚本,根据谷歌的说法,这些脚本具有某种数量的已使用代码。

“删除未使用的 Javascript”确实应该持保留态度,对于插件(例如 YouTube 的 API),应该忽略它,因为您无法编辑外部 API 以提高效率。

就您而言,如果您使用嵌入式 Youtube 视频,则非常需要该文​​件。如果您想优化 Youtube 视频的加载方式,请考虑延迟 加载