2009-07-01 42 views
2

编辑:Mozilla修复了这个bug。这个线程已经死了。FireFox 3.5抓取图像雪碧重复 - 如何防止?

编辑:这是一个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/node/1148091/

我以前曾在Internet Explorer中类似的问题,但我在Safari 3/4,FF 2已经得到了最终这个工作/ 3和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; 
} 
+0

不能与FF 3.5.3和1.4.2的Firebug重现该问题。 Sprite按预期加载一次。 – Serxipc 2009-09-10 17:26:48

+1

看到这个线程:https://bugzilla.mozilla.org/show_bug.cgi?id=501853 – 2009-09-10 20:43:55

回答

1

这是官方FireFox 3.5 bug。简单的黑客攻击是为所有剪切对象创建两个类:一个是所有背景图都常见的,另一个是背景图。 这是所有的孩子!)

0

它与gmaps JS相关,你应该使用一个指针(变量的拷贝)给现有的变量,比如:

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

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

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

0

我看你使用Lighttpd的。您可能需要为您的静态文件使用Module: mod_expire。将它们设置为在一个月或更长时间后过期。你可以在Yahoo找到更多关于这方面的信息。