-->

FireFox 3.5 Fetches Image Sprite Repetitively - ho

2019-09-17 10:30发布

编辑:Mozilla的固定的bug。 这线程已经死了。

编辑:这是一个Mozilla的bug。 看到这个线程: https://bugzilla.mozilla.org/show_bug.cgi?id=501853

我有一个雪碧我在这里用我的图片: http://www.trailbehind.com/site_media/images/sprite.png

在Firefox 3.5中,精灵似乎每次我呈现在我的地图图标的时间去获取,你可以看到Firebug的网络面板中的行为,当你加载这个页面和/或平移地图: HTTP://www.trailbehind。 COM /节点/ 1148091 /

我以前有这种类似的问题在Internet Explorer,但我在Safari 3/4,2/3 FF和IE 6/7/8已经得到了最终这个工作。 现在,什么是错在FF 3.5 :(

我试图把这个代码的文档,以PREC缓存的形象,但无济于事:

  var pre = new Image();
  pre.src = "/site_media/images/sprite.png"; 

下面是后来创建了地图标记(和重新获取其子画面图像)的代码。 这可能是相关GMaps - 它似乎没有去取精灵绘制左侧的每个图标或otheer图像...只是地图。

//returns an image-like GIcon based on a sprite  
function getGIconSprite(attr) {
  var myicon = new GIcon(G_DEFAULT_ICON);
  myicon.sprite = {image:"/site_media/images/sprite.png", top:0};
  myicon.iconSize = new GSize(16,16);
  myicon.iconAnchor = new GPoint(8,8);
  myicon.shadow = null;
  myicon.sprite.left = attr.offset*16;
  return myicon;
}

Answer 1:

这是官方的Firefox 3.5的bug 。 它简单的黑客是创建两个类都剪断对象:一个通用于所有与背景图像和第二个背景位置。 这是所有的孩子!)



Answer 2:

似乎是从服务器的FireFox 3.5加载图像,而不是使用缓存正确的问题。 谷歌“火狐3.5不缓存图像”,你会发现有很多人注意到了这个问题。



Answer 3:

这是相关gmaps JS。 你应该使用指针(变量副本)到现有的变量,如:

defaulticon.sprite = {image:"/site_media/images/sprite.png", top:0};

myicon.sprite = defaulticon.sprite;
myicon2.sprite = defaulticon.sprite;
etc.


Answer 4:

我看你使用Lighttpd的。 您可能需要使用模块:mod_expire您的静态文件。 将它们设置为过期后一个月,甚至更多。 你可以找到关于此的更多信息, 雅虎 。



文章来源: FireFox 3.5 Fetches Image Sprite Repetitively - how to prevent?