Javascript image reload

Discussion in 'PHP' started by OdaN, 1 Apr 2009.

  1. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    Вобщем есть строка

    Code:
    <img src="image.php">
    Нужно, чтобы раз в n секунд оно обновлялось. Пробовал

    Code:
    <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 не силен, сильно не пинайте. =)
     
  2. VAran

    VAran Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    51
    Likes Received:
    15
    Reputations:
    4
    попробуй такой вариант:

    HTML:
    <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.
     
  3. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    в том-то и дело, что картинка одна и та-же.
    Code:
    src="image.php"
    там скрипт, который генерит картинку, при новой генерации картинка другая будет.
     
  4. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    Попробовал

    HTML:
    <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>
    
    Оно толи не работает, толи браузер кеширует картинку. =(

    //добавленно...
    Действительно браузер кеширует картинку... можно с этим ченить сделать??
     
    #4 OdaN, 1 Apr 2009
    Last edited: 1 Apr 2009
  5. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    А если имя картинки каджый раз новое задавать..?!
     
  6. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    Впринципе можно так сделать:
    HTML:
    <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 раз, а по циклу до бесконечности... я собственно не разобрался в этом цикле только...
    Code:
    "image.php?count=" (1 + ++d%8);
    
     
    #6 OdaN, 1 Apr 2009
    Last edited: 1 Apr 2009
  7. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    src = "image.php?"+Math.radnom();
     
    2 people like this.
  8. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    не обновляет >.<

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

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    Code:
    function Reload()
    { var d=Math.random();
    document.getElementById("img").src="image.php?height=300&count=" + d; }
    
    А так заработало =))
     
  10. VAran

    VAran Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    51
    Likes Received:
    15
    Reputations:
    4
    может уже не актуально, но
    <meta http-equiv="Cache-Control" content="no-cache">