2009-07-01 45 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找到更多關於這方面的信息。