这可能很简单,我已经研究过尝试使用 AJAX/Javascript 来做到这一点,但找不到一个好的方法来做到这一点。
我有这个代码:
<?php
$dir = "uploads/*";
foreach(glob($dir) as $file)
{
echo '<img src="'.$file.'">';
}
?>
我希望加载图像时每张图像之间有一定的时间间隔。它们都是 jpeg 并且大小相同。
我想知道是否有办法用 setInterval 和 AJAX 加载它们?或者将其全部保留在 PHP 中?
请您参考如下方法:
我会将您的 PHP 设置为像 RESTful API 端点一样运行。
就像你的问题所暗示的那样,我可以使用 jQuery 的 $.getJSON以及setInterval在您希望的任意时间段后刷新图像。
以下是如何实现此目的的示例(还有很多其他方法):
PHP 文件(get-refresh-imgs.php):
<?php
$dir = "uploads/*";
echo json_encode(glob($dir));
?>
JavaScript 文件 (ajax-refresh.js):
$(function(){
var intervalInMiliseconds = 10000;
//comment out if you don't want to load images immediately
refreshImgs();
setInterval(function(){
refreshImgs();
}, intervalInMiliseconds);
function refreshImgs(){
var container = $('body'); //use whatever container you wish. I'm using body.
$.getJSON('get-refresh-imgs.php', function(data){
container.empty();
data.forEach(function(el, indx, ary){
container.append('<img src="' + el + '"/>');
});
});
}
});
然后,将其包含在您的 HTML 文件中:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="ajax-refresh.js"></script>