GIF-анимация не воспроизводится при обновлении

Первый раз, когда я просматриваю страницу с анимированным .gif, она отлично воспроизводится при загрузке страницы (длится около 2 секунд).

При обновлении (F5) .gif перестает воспроизводиться, и отображается только последний кадр gif-анимации.

Есть ли что-нибудь, что я могу сделать, чтобы убедиться, что он воспроизводится каждый раз?


person Feeney    schedule 12.07.2012    source источник


Ответы (5)


Для PHP гораздо лучший вариант, чем использование date("Ymdgis");, использует time(), например:

<img src="picturePath.gif?<?php echo time();?>" />
person pcigler    schedule 12.04.2013
comment
Ваш ответ спас меня навсегда от Ctrl+F5! Спасибо. - person hd.; 25.07.2016

Странное поведение, которое влияет на каждый браузер..
Я обычно обновляю его вручную с помощью этого скрипта (он использует jQuery)

<img id="gif_animata" src="picturePath.gif">
<script type="text/javascript">
    var gifSource = $('#gif_animata').attr('src'); //get the source in the var
    $('#gif_animata').attr('src', ""); //erase the source     
    $('#gif_animata').attr('src', gifSource+"?"+new Date().getTime()); //add the date to the source of the image... :-) 
</script>

Это обновит src изображения, добавив текущую дату, поэтому браузер повторно загрузит его, думая, что это новое изображение.

В противном случае в PHP (я предпочитаю этот):

<img src="picturePath.gif?<?php echo date("Ymdgis");?>" />

//for the browser it will seems that's a new picture!
<img src="picturePath.gif?2012092011207">
person Community    schedule 20.09.2012
comment
когда я применяю этот метод php, я получаю примерно вторую задержку отображения gif на веб-сайте, но не на локальном хосте. Вы знаете, почему это так? - person john-jones; 08.09.2013
comment
да, я заметил эту небольшую проблему, но мне было все равно, потому что это очень мало времени... :-) - person sekmo; 09.09.2013
comment
если вы когда-нибудь узнаете, дайте мне знать, потому что я действительно хочу узнать. - person john-jones; 09.09.2013
comment
Как обрабатывать фоновые изображения в этом сценарии? - person sprabhakaran; 05.05.2014
comment
вставьте немного php в css, например div.animated{background:url(image.gif?‹?php echo date(Ymdgis);?›);} - person sekmo; 07.05.2014

Обходной путь, который работает для меня для этой проблемы, — перезагрузить GIF вручную с помощью Javascript.

GIF реализован на CSS (фоновые изображения)

var element = document.getElementById(name);
element.style.backgroundImage = "none";  
element.style.backgroundImage = "url(imagepath.gif?"+new Date().getTime()+")";

GIF реализован на HTML (тег img)

var element = document.getElementById(name);
element.src = "";  
element.src = "imagepath.gif?"+new Date().getTime();

Благодаря @sekmo

person Trimikha Valentius    schedule 25.08.2015

Это работает, требуется только одна строка ниже, и я предлагаю сначала не заполнять атрибут <img> src, чтобы страница не пыталась загрузить ненужные ресурсы.

<img id="gif" src=""/>
<script>document.getElementById('gif').src="path_to_picture.gif?a="+Math.random()</script>
person Gunnar Bjorkman    schedule 06.02.2018

Возможно, ваш браузер просто показывает кешированную версию. Попробуйте удерживать Shift и обновить, и посмотрите, работает ли это.

person Scott    schedule 01.08.2012