2011-06-28 21 views
0

私は自分のjavascriptに問題があります。 1秒ごとにイメージ(ページ全体ではない)をリフレッシュしたいが、それはうまくいかない。 したがって、このJavascriptを:私の体で更新画像

<script type="text/javascript"> 

      <!-- 

      function reloadpic() 
      { 

      document.images["camimage"].src = "test.jpg"; 
      setTimeout("reloadpic();", 1000); 
      } 

      onload = reloadpic; 

      --> 
    </script> 

と、この:camimage:

<!-- START OF THE PLAYER EMBEDDING TO COPY-PASTE --> 
<img src="test.jpg" id="camimage" name="camimage" alt="info"></img> 
<!-- END OF THE PLAYER EMBEDDING --> 

それはあなたのページ全体またはIDだけであなたの写真を更新していますか?

今のところ問題があります。私はバイト単位でしか変わらない画像test.jpgを持っています(新しい画像がアップロードされたとき)。しかし、私はそれを自動的にリフレッシュするのですか?

答えて

4

お使いのブラウザはイメージをキャッシュし、イメージを再ダウンロードすることはできません。

ファイル名を変更する場合を除きますが、それはできないと仮定しているため、画像のソースにタイムスタンプを追加することができます。これは画像のファイル名とは関係ありません。

<script type="text/javascript"> 

     <!-- 

     function reloadpic() 
     { 
     var timestamp = new Date().getTime(); 
     document.images["camimage"].src = "test.jpg?random=" + timestamp; 
     setTimeout("reloadpic();", 1000); 
     } 

     onload = reloadpic; 

     --> 
</script> 
+3

'のsetTimeout(reloadpic、1000)か、それが可能であるように、ユーザーが長いページ上に残っている場合、'タイムスタンプ – Neal

+1

にevalを避けるためには、(。すなわち '新しいDate()getTime()は')より適切であろう'random()'を使って繰り返しても十分です。 –

+0

しかし、私のディレクトリにはtest.jpgと呼ばれる画像があると仮定します。どのようにしてそれをリロードすることができますか?私はそれにバイト配列を送信し、バイト配列で画像を変更するPOSTメソッドを使っているからです。 – Verhelst