PDA

Просмотр полной версии : Javascript image reload


OdaN
01.04.2009, 12:38
Вобщем есть строка

<img src="image.php">

Нужно, чтобы раз в n секунд оно обновлялось. Пробовал

<html>
<head>
<script language="javascript" type="text/javascript">
function Start()
{ action = window.setInterval("Reload()",1000); }
function Reload()
{ document.img.src = image.php;}
</script>
</head>
<body>
<img src="image.php" name=img>
<script type="text/javascript">Start();</script>
</body>
</html>

Не работает =(( Подскажите, где накосячил, и как поправить.
В JavaScript не силен, сильно не пинайте. =)

VAran
01.04.2009, 13:20
попробуй такой вариант:

<html>
<head>
<script language="javascript" type="text/javascript">
var d = 1;
function Start()
{ action = window.setInterval("Reload()",1000); }
function Reload()
{ document.getElementById("img").src = (1 + ++d%8) + ".png"; }
</script>
</head>
<body onload="Start()">
<img src="1.png" id="img">
</body>
</html>

для простоты и примера взял 8 картинок с именами от 1 до 8 с расширением png.

OdaN
01.04.2009, 14:19
в том-то и дело, что картинка одна и та-же. src="image.php" там скрипт, который генерит картинку, при новой генерации картинка другая будет.

OdaN
01.04.2009, 14:35
Попробовал


<html>
<head>
<script language="javascript" type="text/javascript">
function Start()
{ action = window.setInterval("Reload()",5000); }
function Reload()
{ document.getElementById("img").src = "image.php"; }
</script>
</head>
<body onload="Start()">
<img src="image.php" id="img">
</body>
</html>


Оно толи не работает, толи браузер кеширует картинку. =(

//добавленно...
Действительно браузер кеширует картинку... можно с этим ченить сделать??

Fepsis
01.04.2009, 14:51
Оно толи не работает, толи браузер кеширует картинку. =(

//добавленно...
Действительно браузер кеширует картинку... можно с этим ченить сделать??
А если имя картинки каджый раз новое задавать..?!

OdaN
01.04.2009, 15:06
Впринципе можно так сделать:
<html>
<head>
<script language="javascript" type="text/javascript">
var d = 1;
function Start()
{ action = window.setInterval("Reload()",2000); }
function Reload()
{ document.getElementById("img").src = "image.php?count=" (1 + ++d%8); }
</script>
</head>
<body onload="Start()">
<img src="image.php?count=1" id="img">
</body>
</html>
Но чет гдет там неправильно, не пашет =) и обновлять надо тогда не 8 раз, а по циклу до бесконечности... я собственно не разобрался в этом цикле только...

"image.php?count=" (1 + ++d%8);

GreenBear
01.04.2009, 15:15
src = "image.php?"+Math.radnom();

OdaN
01.04.2009, 15:22
src = "image.php?"+Math.radnom();

не обновляет >.<

Чет хрень какая-то, толи с браузером - кэш, толи даж не пойму с чем... По теории полюбому должно...

OdaN
01.04.2009, 17:46
function Reload()
{ var d=Math.random();
document.getElementById("img").src="image.php?height=300&count=" + d; }


А так заработало =))

VAran
02.04.2009, 02:01
может уже не актуально, но
не обновляет >.< Чет хрень какая-то, толи с браузером - кэш, толи даж не пойму с чем
<meta http-equiv="Cache-Control" content="no-cache">