【问题标题】:Why does my image take a long time to download for my SPA?为什么为我的 SPA 下载我的图像需要很长时间?
【发布时间】:2020-08-27 22:01:43
【问题描述】:

我正在构建一个 React SPA,我想要一张图片作为我主页的背景。图片是1.2mb,第一次加载时有明显的延迟,甚至加载黑白,然后轻弹彩色

所以我尝试了一些方法。我已经压缩了。现在是 700kb。我已将其添加到 s3 存储桶中,而不是在本地使用。我创建了一个云端发行版,我正在请求它。显然,下载后图像很好,我在我的应用程序的不同页面之间滑动并返回主页,因为大概浏览器已缓存。但是,当我硬重新加载时,它似乎总是有点延迟。哦,我还在我的存储桶中的对象中添加了一个缓存控制标签。无论如何我可以解决这个问题或让它加载更快吗?

哦还有一些代码:

const Container = styled.div`
    background-image: url(cloudfront.net/beach.jpg);
    background-size: cover;
    height: 100%;
    position: absolute;

    width: 100%;

    &:before {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background-image: linear-gradient(to bottom right, #000, #fff);
        opacity: 0.2;
    }
`

我实际上是将它应用到组件本身而不是直接的 html 或 body 元素

【问题讨论】:

    标签: javascript reactjs amazon-s3 amazon-cloudfront


    【解决方案1】:

    在优化图像方面实际上有一些策略,但让我列出 2 个您可以采用的最直接的策略。

    1) 您不妨考虑使用webp,而不是使用jpegpng 等传统图像格式,因为它提供比前者更好的压缩。

    但是,请注意browser support,因为 Safari 仍然不支持它。对于不支持webp的浏览器,您可以考虑使用后备图像格式。

    2) 根据视口大小获取图像。您可以存储各种大小的图像,并确保您的应用根据视口大小获取正确的图像。例如,在移动设备上,您应该获取较小的图像。

    【讨论】:

    • 您好文君,感谢您的建议。我现在只是想优化桌面(我知道生活在上世纪)。但是是的,我会给 webp 看看它是否可以帮助我。谢谢!
    • 是的! webp 肯定会为您压缩它。无论哪种方式,即使对于台式机,您也应该根据屏幕尺寸获取正确的图像。您的用户可以通过笔记本电脑(仍然可以)或外接显示器(非常宽!)访问它。
    • 已经完成了!如果您认为这个问题很好,请支持这个问题;)谢谢
    猜你喜欢
    • 2012-01-14
    • 2011-04-22
    • 1970-01-01
    • 2011-11-29
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 2022-11-11
    相关资源
    最近更新 更多