PDA

Показать полную графическую версию : Помогите с обновлением картинки на сайте


xxxsnoop
15-02-2009, 13:06
Привет.Есть такое задание: можно ли сделать так, чтобы определенная картинка на сайте обновлялась автоматически через какое то время.Ссылка на картинку с другого сервера.Например отображается прогноз погоды на страничке и хотелось бы, чтобы она обновлялась через определенное время без обновления всей страницы.Как это можно реализовать?

Prisoner
15-02-2009, 14:05
Приветствую. Рядом (http://forum.oszone.net/thread-132027.html) аналогичный вопрос рассматривается. Разница небольшая. В вашем случае нужно не вызывать событие клика, но менять src картинки.

xxxsnoop
15-02-2009, 15:40
и КАК в моем случае будет выглядеть код?Например есть:

<a href='http://www.gismeteo.Ru/towns/27555.htm'><img src='http://informer.gismeteo.Ru/27555-31.GIF' alt="GISMETEO: Погода по г. Павлово" border="0"></a>

Prisoner
15-02-2009, 17:50
<script type="text/javascript">
function setImageAutoreloadAbility(image, interval) {
var imageSrc = image.src;

window.setInterval(function(){image.src = imageSrc + '?' + (new Date().getTime());}, interval);
}

setImageAutoreloadAbility(document.getElementById('imageId'), 1000);

</script>
Заведите только ID для картинки. У меня это "imageId". Добавляемая к src дата способствует предотвращению загрузки картинки из кеша.

xxxsnoop
15-02-2009, 20:21
Что то у меня при обновлении картинки пишет "Ошибка на странице" и потом "готово"...почему происходит ошибка?
Я прописал ID вот так: <a href='http://www.gismeteo.Ru/towns/27555.htm'><img id='imageId' src='http://informer.gismeteo.Ru/27555-31.GIF' alt="GISMETEO: Погода по г. Павлово" border="0"></a>.Я все правильно сделал?

Prisoner
15-02-2009, 21:50
Ops, прошу прощения, уберите "console.log(image.src)" из кода :). C id все правильно. Ну и интервал стоит подобрать нужный, измеряется в миллисекундах.

xxxsnoop
17-02-2009, 08:41
Prisoner, спасибо, все работает))

Porecla
17-02-2009, 22:47
Prisoner, Блин, ребята а у меня не работает :-(

Prisoner
18-02-2009, 08:30
Porecla, доброго времени суток. Телепатируйте, что именно :).

xxxsnoop
18-02-2009, 08:40
Porecla, что не работает?Что именно тебя интересует?

Porecla
18-02-2009, 12:54
что не работает?Что именно тебя интересует? »

Ну в Опере вообще не обновляется, в IE тоже не обновляется и пишет что в это строчке нужен объект. var imageSrc = image.src; »

Прописал вот так <img id='imageId' src="444.jpg" height="500" width="300">

Поставил интервал 20000, после открытия страницы быстренько, меняю 444.jpg на другое изображение. И ничего, всё стоит на месте.

Prisoner
18-02-2009, 13:06
Видимо код запускается раньше окончательной загрузки DOM. Как вариант разместите вызов setImageAutoreloadAbility в самом низу страницы.
А 20000 это быстренько? 20 секунд ведь. И что значит "после открытия страницы быстренько, меняю 444.jpg на другое изображение"? Если на другой узел, без ID или с отличным от 'imageId' (кстати, можно и другой ID использовать, посемантичнее), то, возможно, в этом причина - нет ID, нет и мультиков.

Porecla
18-02-2009, 16:43
setImageAutoreloadAbility в самом низу страницы »

Ну вот теперь всё работает. :-)

Prisoner
18-02-2009, 17:33
Ну вот теперь всё работает »
Звучит, будто в том, что не работало, была моя вина :)

Porecla
18-02-2009, 18:15
Звучит, будто в том, что не работало, была моя вина »

Виноват всегда тот кто прав :-)

Жизненная мудрость .




© OSzone.net 2001-2012