1

我想定期在 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>

我知道这一切都错了,但是需要做些什么才能使其正常工作?

4

6 回答 6

2

你需要setInterval而不是setTimeout

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

您可以随时停止重新加载

clearInterval(i);
于 2012-05-30T08:18:47.087 回答
1

这会做到

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

使用setInterval()您可以在指定的毫秒数(在本例中为 100)后重复一个函数

于 2012-05-30T08:18:14.027 回答
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')还要创建对节点的外部范围引用,这样您就不会在每次函数调用时重新评估

于 2012-05-30T08:18:35.273 回答
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)

   }
});
于 2012-05-30T08:31:20.057 回答
0

如果您需要每秒,则使用 setInterval 和 1000ms 是 1 秒。

$(document).ready(function() {
  setInterval('LoadImages',1000 );
});
于 2012-05-30T08:19:12.533 回答
0

setTimeout('LoadImages()',100 )应该像setTimeout(LoadImages,1000 );1sec 一样setTimeout采用间隔参数millisecond。要每秒执行一次,您应该使用setIntervallike setInterval(LoadImages,1000)setTiemout只会运行一次。

assetTimeout需要函数引用 where using'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);
 });
}
于 2012-05-30T08:19:40.800 回答