在不同的网址中加载相同的图片

时间:2012-10-06 23:05:50

标签: optimization pageload image-loading page-load-time

我在example.com

上的网页上加载了一张图片http://example.com/test.jpg

现在,如果通过该页面上的超链接,用户转到example.com/testpage.html,其中存在相同的图像(使用src http://example.com/test.jpg),那么浏览器是否会从该页面请求该图像再次服务器?

P.S。:我面临的问题是单个html页面上的页面呈现缓慢,因为有大量的图像和图像。 JavaScript的。因此,我计划在之前的引荐来源网址上加载一些图像,以便当用户进入该页面时,已经加载了一些图像。请注意,我不打算通过js / ajax异步加载页面。我想做一个简单的重定向到给定的页面&想要一些图像已经加载。

3 个答案:

答案 0 :(得分:1)

只要域名相同,并且您的缓存设置正常,浏览器就会发出请求,但会获得 304 Not modified 响应,而不需要重新下载整个资产。

答案 1 :(得分:1)

浏览器可能会也可能不会再次请求图像 - 这取决于浏览器,图像的年龄,上次检索的时间等。

当浏览器遇到请求时,它将首先检查它的URL缓存

如果项目在缓存中并且为其设置了明确的到期日期(通过expires或cache-control:max-age),并且该到期日是将来的,则浏览器将使用该版本高速缓存中。

如果该项目在缓存中并且没有未来的到期日期,那么浏览器可以使用启发式方法来判断它是否需要发出请求,例如如果它昨天下载并且文件没有改变6个月,它可能决定使用缓存中的版本(目前尚不清楚哪些浏览器在此处做了什么)

或者,如果项目在缓存中,则浏览器可以执行“if-modified-since”请求,如果资源自缓存版本的日期以来没有更改,则服务器以304响应,否则它将发送文件

答案 2 :(得分:0)

一个简单的图像引用应该被缓存并且只加载一次。

你应该检查图像的大小 - 也许你有一个巨大的图像(加载速度慢),它显示得更小,可以在服务器上调整大小。