我在example.com
上的网页上加载了一张图片http://example.com/test.jpg现在,如果通过该页面上的超链接,用户转到example.com/testpage.html,其中存在相同的图像(使用src http://example.com/test.jpg),那么浏览器是否会从该页面请求该图像再次服务器?
P.S。:我面临的问题是单个html页面上的页面呈现缓慢,因为有大量的图像和图像。 JavaScript的。因此,我计划在之前的引荐来源网址上加载一些图像,以便当用户进入该页面时,已经加载了一些图像。请注意,我不打算通过js / ajax异步加载页面。我想做一个简单的重定向到给定的页面&想要一些图像已经加载。
答案 0 :(得分:1)
只要域名相同,并且您的缓存设置正常,浏览器就会发出请求,但会获得 304 Not modified 响应,而不需要重新下载整个资产。
答案 1 :(得分:1)
浏览器可能会也可能不会再次请求图像 - 这取决于浏览器,图像的年龄,上次检索的时间等。
当浏览器遇到请求时,它将首先检查它的URL缓存
如果项目在缓存中并且为其设置了明确的到期日期(通过expires或cache-control:max-age),并且该到期日是将来的,则浏览器将使用该版本高速缓存中。
如果该项目在缓存中并且没有未来的到期日期,那么浏览器可以使用启发式方法来判断它是否需要发出请求,例如如果它昨天下载并且文件没有改变6个月,它可能决定使用缓存中的版本(目前尚不清楚哪些浏览器在此处做了什么)
或者,如果项目在缓存中,则浏览器可以执行“if-modified-since”请求,如果资源自缓存版本的日期以来没有更改,则服务器以304响应,否则它将发送文件
答案 2 :(得分:0)
一个简单的图像引用应该被缓存并且只加载一次。
你应该检查图像的大小 - 也许你有一个巨大的图像(加载速度慢),它显示得更小,可以在服务器上调整大小。