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

时间:2013-11-18 20:32:04

标签: php jquery ajax include

我正在尝试加载一个包含的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>";
}

好吧,如果我尝试在调用之前回显php函数时间,它会显示并刷新=它的工作原理。但是sql调用没有执行。

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

2 个答案:

答案 0 :(得分:1)

不是设置任意3秒,因为这是一个ajax请求,为什么不使用先前响应的成功回调来触发下一个请求呢?

你可以这样做:

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

updateImage();

现在我们正在等待我们发送另一个请求之前完成的请求。这样,您可以更均匀地将请求调整到服务器。如果服务器开始变慢,这也将相应地减慢速度,而不是继续使用它无法处理的请求来锤击服务器。

答案 1 :(得分:0)

好吧我觉得浏览器可能会缓存该URL的响应并且每次都使用缓存版本,所以为了确保每次都获得一个新的副本,请在URL中添加一个参数,尝试用此

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

希望它适合你。