在一段时间后刷新页面或重定向页面到循环中的新URL

时间:2012-12-30 13:11:46

标签: php javascript

每次刷新或重定向时,我想在4分钟后刷新页面或重定向页面到新网址 举例如下

$i=1
while($i = 100){
 //** Now URL redirect here 
$url="u_pc_change.php?id=$i";
echo '<meta http-equiv="refresh" content="2;url='.$url.'">';
$i++;
 }

一些在此等待4分钟并将页面重定向或刷新到新网址的代码,如

u_pc_change.php?id=1
u_pc_change.php?id=2
u_pc_change.php?id=3

上面的代码不起作用,因为它快速循环,没有任何东西会等待4分钟......我需要一种方法在第二次循环发生之前等待4分钟......用于刷新或重定向。

3 个答案:

答案 0 :(得分:0)

您可以使用以下代码

将网页重定向到随机网址
<script type="text/javascript">

var urls = new Array("http://www.firstURL.com/", "http://www.SecondURL.com/");

function redirect(){
    window.location = urls[Math.floor(urls.length*Math.random())];
}

setInterval("redirect()", 4000);

</script>

答案 1 :(得分:0)

如果您想等待4分钟,可以像这样使用JS:

<script>setTimeout(function() { document.location='your_desired_location';},1000 * 60 * 4);</script>

如果我理解正确,你想要每4分钟显示一些不同的东西,无论用户刷新页面,离开还是返回,或者只是停留在页面上4分钟。

您可以保存用户刷新时间并在下次检查。

session_start();
if( !isset($_SESSION['lastRefresh']) ) $_SESSION['lastRefresh'] = time(); //User is here for first time
else {        
    if( time() - $_SESSION['lastRefresh']  > 60 * 4 )//Show something else
    {
      $_SESSION['lastRefresh'] = time();//This is in if, so "timer" won't reset if user refresh before 4 minutes.
    }
}

答案 2 :(得分:0)

当然,您可以像其他人建议的那样刷新JS中的页面,也可以使用您在示例中使用的元刷新。但是,使用任何类型的超时(或间隔)都没有意义,因为您要刷新整个页面。

我会在后端处理整个逻辑,只担心一次刷新一次。如果要按顺序刷新页面,只需创建一个URL数组,并始终从您所在页面中选择下一个URL。如果您想要随机页面加载,只需在每个页面选择一个随机数组索引。

同样,不需要任何循环或间隔。他们在任何一端都不会活得足够有用。