2009-07-01 7 views
2

EDIT: Mozilla исправил ошибку. Этот поток мертв.FireFox 3.5 Fetches Image Sprite Повторно - как предотвратить?

EDIT: Это ошибка Mozilla. Смотрите эту тему: https://bugzilla.mozilla.org/show_bug.cgi?id=501853

У меня есть спрайт я использую для моих изображений здесь: http://www.trailbehind.com/site_media/images/sprite.png

В FireFox 3.5, спрайт, кажется, чтобы получить неправдоподобные каждый раз, когда я сделать значок на моей карте, вы можете увидеть поведение в панели Firebug Net при загрузке этой страницы и/или панорамировании карты: 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 и Firebug 1.4.2. Спрайт загружается один раз, как ожидалось. – Serxipc

+1

См. Эту тему: https://bugzilla.mozilla.org/show_bug.cgi?id=501853 –

ответ

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. 
+0

Хммм, поэтому я попытался это сделать, но все же кажется, что вы получаете несколько спрайтов. Правильно ли этот код: var defSprite = {image: "/ site_media/images/sprite.png", top: 0}; // возвращает образный GIcon на основе спрайта Функция getGIconSprite (attr) { var myicon = new GIcon (G_DEFAULT_ICON); myicon.iconSize = новый GSize (16,16); myicon.iconAnchor = новый GPoint (8,8); myicon.shadow = null; myicon.sprite = defSprite; myicon.sprite.left = attr.offset * 16; return myicon; } –

+0

Тогда я не уверен. Я знаю, что у меня была аналогичная проблема с перезагрузкой изображений, а затем использовалась для определения всех точек ... – dusoft

1

Возможно, проблема связана с тем, что FireFox 3.5 загружает изображения с сервера и не использует кеш должным образом. Google «firefox 3.5 не кэширует изображения», и вы заметите, что многие люди замечают эту проблему.

0

Я вижу, что вы используете Lighttpd. Вы можете использовать Module: mod_expire для своих статических файлов. Установите срок их действия через месяц или даже больше. Вы можете найти дополнительную информацию об этом на Yahoo.

 Смежные вопросы

  • Нет связанных вопросов^_^