每x';加载一个包含的php文件;秒

每x';加载一个包含的php文件;秒,php,jquery,ajax,include,Php,Jquery,Ajax,Include,我正在尝试加载一个包含的php文件,每三秒钟(测试时)从数据库加载4个随机图像。这是我的代码,但它不起作用 function updateImage(){ $('#ajax').load('includes/slideshow.php'); } $(document).ready(function(){ setInterval( 'updateImage()', 3000 ); }); 有人能告诉我怎么解决这个问题吗?(我需要使用Ajax吗?这段代码看起来怎么样?) 我应该补

我正在尝试加载一个包含的php文件,每三秒钟(测试时)从数据库加载4个随机图像。这是我的代码,但它不起作用

function updateImage(){
    $('#ajax').load('includes/slideshow.php');
}

$(document).ready(function(){
    setInterval( 'updateImage()', 3000 );
});
有人能告诉我怎么解决这个问题吗?(我需要使用Ajax吗?这段代码看起来怎么样?)

我应该补充一点,id为“ajax”的div是空的

这是slideshow.php:

$select = new c_select();
$rows = $select -> select ("images ORDER BY rand() LIMIT 4");

foreach ($rows as $nogle => $row){
    echo "<a href='upload/".$row['img_name']."' data-lightbox='lightbox'><img src='upload/resize_".$row['img_name']."'></a>";
}
$select=newc_select();
$rows=$select->select(“图像按兰德排序()限制4”);
foreach($nogle=>$row的行){
回声“;
}
好的,如果我尝试在调用之前回显php函数time,它会显示并刷新=它可以工作。但是sql调用不会执行


更新:似乎我应该在slideshow.php中使用一个更简单的mysql调用和一个数据库连接。

我有一种感觉,也许浏览器会缓存该URL的响应,并且每次都使用缓存的版本,所以为了确保每次都获得一个新的副本,请在URL中添加一个参数,尝试用这个替换函数

function updateImage(){
    $('#ajax').load('includes/slideshow.php?'+new Date().getTime());
}

希望它对您有用。

我有一种感觉,浏览器可能会缓存该URL的响应,并且每次都使用缓存的版本,因此为了确保每次都能获得一个新的副本,请在URL中添加一个参数,尝试用此参数替换您的函数

function updateImage(){
    $('#ajax').load('includes/slideshow.php?'+new Date().getTime());
}

希望它对您有用。

与其设置任意3秒,因为这是一个ajax请求,不如使用前一个响应的成功回调来触发下一个请求

你可以这样做:

function updateImage(){
  $('#ajax').load('includes/slideshow.php', function(){
    setTimeout(updateImage, 3000);
  });
};

updateImage();

现在我们正在等待一个请求完成,然后再发送另一个请求。这样,您可以稍微均匀地调整到服务器的请求的速度。如果服务器开始变慢,这也会相应变慢,而不是继续用无法处理的请求重击服务器。

与其设置任意3秒,因为这是一个ajax请求,不如使用前一个响应的成功回调来触发下一个请求

你可以这样做:

function updateImage(){
  $('#ajax').load('includes/slideshow.php', function(){
    setTimeout(updateImage, 3000);
  });
};

updateImage();

现在我们正在等待一个请求完成,然后再发送另一个请求。这样,您可以稍微均匀地调整到服务器的请求的速度。如果服务器开始变慢,这也会相应变慢,而不是继续用无法处理的请求重击服务器。

“但它不工作”这意味着什么?我看不出您的代码在语法上有任何错误。是的,这就是为什么我对注释的措辞非常谨慎的原因。:)@A.Wolff
setInterval(updateImage,3000)
@adammerfield绝对“但它不起作用”什么意思???我看不出你的代码在语法上有任何错误。是的,这就是为什么我对该评论的措辞非常谨慎的原因。:)@A.Wolff
setInterval(updateImage,3000)
@Adammerifield绝对是我测试的,这是个坏主意,因为$.load()是异步的,图像加载将根据时间加速,因为setTimeout()生成的计时器是累积的。可能会改用$.get()。我不确定您是否了解它的工作原理。在
.load
上使用回调的全部意义在于,在前一个请求完成之前,它不会生成新请求。这将仅以每秒1个请求的最大速率刷新。正如你所说,没有计时器的“累积”。+1,你是对的,我现在注意到你使用了setTimeout()而不是setInterval()。好极了!!!谢谢你的回答,但它一点也不返回任何内容。我开始怀疑我是否把代码放错地方了。现在,它位于我的索引文件的底部,就在jquery和jquery min include的正下方。我正在尝试将slideshow.php包含在索引中的文件中。您不需要同时使用
jquery
jquery min
。。。事实上,如果您有多个映像,而没有采取特殊措施防止它们相互碰撞,则很可能会遇到问题。我对此进行了测试,这是个坏主意,因为$.load()是异步的,图像加载将根据时间进行加速,因为setTimeout()生成的计时器是累积的。可能会改用$.get()。我不确定您是否了解它的工作原理。在
.load
上使用回调的全部意义在于,在前一个请求完成之前,它不会生成新请求。这将仅以每秒1个请求的最大速率刷新。正如你所说,没有计时器的“累积”。+1,你是对的,我现在注意到你使用了setTimeout()而不是setInterval()。好极了!!!谢谢你的回答,但它一点也不返回任何内容。我开始怀疑我是否把代码放错地方了。现在,它位于我的索引文件的底部,就在jquery和jquery min include的正下方。我正在尝试将slideshow.php包含在索引中的文件中。您不需要同时使用
jquery
jquery min
。。。事实上,如果你有不止一个,而没有采取特殊措施防止它们相互碰撞,你很可能会遇到问题。