2011-03-09 71 views
3

我在我的网站(启用JavaScript,并可以强制浏览器选择)的CMS部分页面时,它是用大量的图片日历:同一图像加载多次

<img src='1.gif' /> 
<img src='1.gif' /> 
<img src='1.gif' /> 
<img src='1.gif' /> 

<img src='2.gif' /> 
<img src='2.gif' /> 
<img src='2.gif' /> 
<img src='2.gif' /> 

相同的图像可以使用超过250次,页面上有大约1000-1500张图片。

浏览器是否足够聪明地知道这些图像都是相同的图像,或者是否有一些JavaScript/jQuery技巧可以用来提高性能?

+1

这可以是一个浏览器的东西,但大多数浏览器会检查图像的缓存,如果发现它,将在第一次加载后使用它。 – 2011-03-09 03:18:20

+1

应该不成问题。如果您在Safari或Chrome中使用开发人员工具,则应该能够判断它是否做得正确。查看Chrome中的网络标签或Safari中的资源标签。 – 2011-03-09 03:32:19

回答

2

如果它们具有相同的实际路径,那么浏览器将缓存它们,除非您拥有积极的反高速缓存标题,例如过去的过期标题。

3

我认为这个问题还没有得到解决。这是相同页面上的相同图像。 @ Alex的答案更适合跨多个页面的同一图像。

当您在一个页面内加载同一图像的多个副本时,浏览器不应该关心缓存/过期标头。它应该重新使用它加载的图像。

对于此DOM片段:

<img src='1.gif' /> 
<img src='1.gif' /> 

望着在Chrome,Firefox或IE9的网络选项卡上,你可以看到,只有一个由浏览器服务器调用。如果图像已过期,则图像将返回,否则您将得到304未修改。

总而言之,在同一页上有一百张相同图像的副本不应该有任何开销,并且过期标题并不重要。