每秒在div中加载图像

时间:2012-05-30 08:16:08

标签: javascript jquery

我想定期加载div中的图像,比如说每隔一两个

我做了一些像这样的愚蠢尝试

$(document).ready(function() {
  setTimeout('LoadImages()',100 );
});
function LoadImages()
{
   $('#Images').load('get_image.htm'); // get_image.htm displays image
}
</script>
<body>
<div id="Images"><div>

我知道这一切都错了,但需要做些什么才能让它发挥作用?

6 个答案:

答案 0 :(得分:2)

您需要setInterval而不是setTimeout

$(function() {
 var i = window.setInterval(function(){
    $('#Images').load('get_image.htm');
 },1000 );
});

您可以随时使用

停止重新加载
clearInterval(i);

答案 1 :(得分:1)

这样做

$(document).ready(function() {
  setInterval(function() {
    $('#Images').load('get_image.htm'); // get_image.htm displays image
  },100 );
});

使用setInterval(),你可以在指定的毫秒数后重复一个函数(在这种情况下为100)

答案 2 :(得分:1)

避免在setTimeout / Interval中使用字符串,只需尝试这个

$(document).ready(function() {
  var div = $('#Images');
  setInterval(function() {
    div.load('get_image.htm'); // get_image.htm displays image
  }, 1000);
});

如果你需要每秒拨打一个电话,那么延迟必须是1000(而不是100,否则你的服务器将获得600 reqs / min而不是60)。

同时创建节点的外部范围引用,这样您就不会在每次函数调用时重新评估$('#Images')

答案 3 :(得分:1)

$(document).ready(function() {

   function LoadImages() {

     setTimeout(function() {
        $('#Images').load('get_image.htm'); // get_image.htm displays image
        LoadImages(); // recursive call to LoadImages
     }, 1000)

   }
});

如果你想在完成图像加载后调用LoadImages()

$(document).ready(function() {

   function LoadImages() {

     setTimeout(function() {
        $('#Images').load('get_image.htm', function() {

             LoadImages(); // recursive call to LoadImages

       }); // get_image.htm displays image

     }, 1000)

   }
});

答案 4 :(得分:0)

如果你需要每秒,那么使用setInterval和1000ms是1秒。

$(document).ready(function() {
  setInterval('LoadImages',1000 );
});

答案 5 :(得分:0)

setTimeout('LoadImages()',100 )应该与setTimeout(LoadImages,1000 );相似1秒,因为setTimeout获取millisecond中的区间参数。要每隔一秒执行一次,您应该使用setInterval setInterval(LoadImages,1000)setTiemout只运行一次。

as setTimeout接受函数引用,其中使用'LoadImages()'将触发eval并立即执行该函数并返回null。

你也应该使用append而不是一次又一次地将图像加载到div中,这将取代之前的所有。我不确定你是否故意这样做。

$(function() {
 var i = window.setInterval(function(){
    $('#Images').load('get_image.htm');
 },1000 );
});
function LoadImages()
{
 $.get('get_image.htm',function(data){
    $('#Images').append(data);
 });
}