通过 CloudFront 加载 CSS 图像 Sprite 比在本地加载慢

标签 css amazon-s3 amazon-web-services sprite amazon-cloudfront

我刚刚将我的 CSS 图像 Sprite 更改为从本地运行到 CloudFront,现在有明显的滞后,甚至跨页面和页面重新加载也是如此。关于为什么会发生这种情况有什么想法吗?

最佳答案

将图像从 localhost 移动到服务器(在本例中为 CloudFront )总是会导致速度损失(当然相对于 localhost)。这是因为即使使用出色 托管服务,浏览器也必须通过互联网 向该服务器发送 HTTP 请求,以查明文档是否自之前被修改以来被修改是否缓存(未修改:HTTP 响应 304)。

假设文档不需要再次下载/重新缓存,这应该是 CSS 图像请求的结尾(特别是如果您使用的是 css-sprites)。

如果由于缓存已过期或文档已更改而必须重新下载图像 Sprite ,那么显然浏览器必须通过互联网和网络再次下载文件。由于您自己的网络/内部网上的争用、您的房子和您的邻居之间的家庭和机柜之间的争用,以及您的 ISP 为您提供的任何速度,这都会产生成本。

localhost 是同一台机器,并且(可能)具有以毫秒为单位的响应。相比之下,访问 Amazon 的 CloudFront 可能只需要一两秒,但这仍然高出一个数量级(或更多)。

关于通过 CloudFront 加载 CSS 图像 Sprite 比在本地加载慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887448/

相关文章:

mysql - EC2服务器,一个微型实例就够了吗?

css - 为什么我的位置绝对子项是相对于浏览器窗口放置的,而不是相对于父项的位置?

html - 如何使用 fxLayout 在 mat-card-content 中制作两个响应列?

amazon-web-services - 具有 s3fs 和熔断器的 Amazon S3,传输终端节点未连接

amazon-web-services - 使用缓冲过程将图像 URL 上传到 S3

amazon-web-services - 使用 AWS ECS 容器进行成本计算

javascript - 如何使 cardHeader 组件中的头像元素居中?

css - 使用内联 block 显示的无序列表的意外放置

python - 远程图像上传的执行方式与开发服务器不同

amazon-web-services - AWS CodeBuild 目录问题?