图像加载时间延迟

时间:2013-01-16 11:33:46

标签: php image delay

这个脚本有效,它会加载到我的图像中。

我希望在10秒之后加载一个新图像,当我尝试这个时它没有对我做错了什么建议?

    <?php header("Refresh: 5; URL=mytestfile.php"); ?>
<div style="width: 964px;">
<div style="float: left; width: 240px;">
<?php $mybanners[1] = '<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>';
$mybanners[2] = '<a href="/chiropodist/"><img src="banners/chiropody.jpg"></a>';
$mybanners[3] = '<a href="/fitness-instructor/"><img src="banners/fitness ball.jpg"></a>';
$mybanners[4] = '<a href="/dietician/"><img src="banners/Dietician.jpg"></a>';
$mybanners[5] = '<a href="/alexander-technique/"><img src="banners/Alexander technique.jpg"></a>';

$id = rand(1,5);

echo $mybanners[$id]; 

// this is the section I tried to control the delay

$mybanners = 0;
for($i=0; $i<10000; $i++){
if($i=='10000'){
    $mybanners++;
    $i = 0;
    }
    if($mybanners=='10'){
    $mybanners=0;
 }

}?>

2 个答案:

答案 0 :(得分:0)

你无法通过PHP控制这个,这是一个Javascript用例。 for不是与时间相关的控件:http://php.net/manual/en/control-structures.for.php

你应该在Javascript中有一个图像列表:

var myImages = [
  '<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>',
  '<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>',
  '<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>',
  '<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>',
];

(你当然可以用PHP生成这个列表)

然后,每隔10秒,用它做一些事情:

var i = 0;
window.setInterval(function() {
  alert(myImages[i]);
  i++;
, 10000}

PHP如果要生成页面,在将页面提供给客户端之后就无法做任何事情。

答案 1 :(得分:0)

如果您尝试使用Refresh标头循环,则不需要循环。
此外,计数到10000不需要10秒。 你正在使用你以前的urls数组作为索引...... 简而言之,再次构建它。

如果您想在浏览器中旋转它们,请将网址列表设为javascript。

编辑:添加示例

1)使网址可用于javascript:

在php中输出javascript:

echo "<script>";
echo "var urlList = new Array();";
foreach ($urls as $url)
  echo "urlList[urlList.length]='$url';";

2)旋转它们 这是每5秒运行一次功能的基本结构:

setTimeout(function() {}, 5000);

你需要找到一种方法来进行旋转:要么为数组的索引保留一个计数器,要么尝试随机:

setTimeout(function() {
  var index = Math.round(Math.rand * urlList.length);
  document.getElementById('#myimg').src.href=urlList[index];
}, 5000);

注意:我在这里写这段代码,它没有经过测试,但它应该足以让你走了。 一旦你开始使用它,考虑使用一些jQuery.fade转换。