gpt4 book ai didi

javascript - 如何加快网站背景图片的加载速度?

转载 作者:太空狗 更新时间:2023-10-29 16:34:07 24 4
gpt4 key购买 nike

我正在尝试提高我的 website 的性能.在 Chrome DevTools 中,我看到对 bg2.jpg 的请求在开始下载时被延迟。 Chrome DevTools Network Waterfall

我认为发生这种情况是因为我使用 JavaScript 生成 URL 并将其设置为 CSS 中的背景图像,而 Chrome 浏览器正在降低包含此代码的脚本标签的优先级。

let bgImgName = "bg" + Math.floor(Math.random() * 5);
...
document.documentElement.style.setProperty("--bgUrl", `url(img/${bgImgName}.jpg)`);

我的想法是preload使用的图像,<link rel="preload" href="img/bg2.jpg" as="image">在 HTML 中。我的问题是我必须硬编码 URL 才能工作(因为我的服务器只运行 apache,没有真正的服务器端语言)。我的服务器(在 Linux 共享主机上与 GoDaddy 一起托管)确实允许我访问 .htaccess 文件,并且可能有一种方法可以使用 Server Side Includes注入(inject)随机数,但我还没有找到执行此操作的方法。

有没有办法这样做,或者有不同的方法来解决这个问题?

更新: 看来我无法使用服务器端包含。我忘记了在将 HTML 文件上传到服务器之前对它们进行 gzip 压缩,以便直接从磁盘提供压缩的静态文件可以提高性能。

有没有办法在传递给浏览器的 .htaccess 文件中添加一个随机数?

最佳答案

因为您有 5 张随机图片,一个简单的方法是使用 CSS 并将它们作为任何元素的背景,尺寸为 0。这将强制浏览器在到达 JS 脚本之前加载图像。当然,CSS 需要在您的 JS 之前加载,并尽快加载。

所以你的代码可以是这样的:

html {
background-image:
url("img/bg1.jpg"),
url("img/bg2.jpg"),
url("img/bg3.jpg"),
url("img/bg4.jpg"),
url("img/bg5.jpg");
background-size:0 0;
}

关于javascript - 如何加快网站背景图片的加载速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52269593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com