php在一些延迟后显示下一个值

Posted

技术标签:

【中文标题】php在一些延迟后显示下一个值【英文标题】:php display next value after some delay 【发布时间】:2013-02-19 17:43:52 【问题描述】:

所以我有一个数组

$super = array(8,9,10,11,12,20,21); 

我想在我的网站上显示一小时的第一个值

一小时后显示第二个,以此类推

数组到达末尾“21”后,它会重置并开始显示第一个值

回声 $super [0]

等一小时$super换成

$super[1]
下一小时
 $super[2] 
等等。

之后

$super == $super[21] 
重置
 $super 到 $super[0] 

我可以使用 next()、current()、reset() 函数,但我不知道如何延迟循环它们。

【问题讨论】:

在第一个页面加载时,将当前的time() 存储到用户的会话中。然后将该值用作时间计算的基准。在$num_hours 小时过去后,执行echo $super[$num_hours];。添加翻转逻辑。 $super 数组将始终具有这些值还是可以更改?如果你在这里说你需要做什么,那么有人可能会想出一个解决方案 @zamil 值可以改变,数组会得到更多值 @nickb 不能为此使用会话 然后使用cookie,需要持久化。除非您希望保持与服务器的开放连接数小时,否则这不仅对大多数共享主机(如果不是全部)来说是不可能的,而且会浪费资源。 【参考方案1】:

享受服务器端静态版本:

$super = array(8,9,10,11,12,20,21); // Array can be extended
$h = date('H') ; //Current hour. Server time

$start_day_element = 0 ; //Offset, from what element days start.

echo $super[($h + $start_day_element)%count($super)] ;

当然,必须刷新页面才能看到更新的值。

【讨论】:

【参考方案2】:

尴尬

用户javascript settimeout用ajax执行js函数

eg:setTimeout("somefun();", 5000);

其中 5000 是时间延迟

function somefun()
    $("#msgSpan").load("site.com/somepage.php");

其中“#msgSpan”是显示数组值的元素的 ID

在 somepage.php 中实现相应的返回数组值的逻辑

你可以使用 php 会话来记录当前的数组索引,并且对于每个下一个请求你增加数组索引

【讨论】:

以上是关于php在一些延迟后显示下一个值的主要内容,如果未能解决你的问题,请参考以下文章

PHP-在按下按钮后显示数组中的一个值

java jtree在延迟后重新显示每个项目的工具提示

经过一段时间的延迟后,如何在数组中显示一组项?

如果 ajax 花费的时间少于 X 秒,如何延迟显示进度?

dialog延迟显示,被activity覆盖不显示

STM32(在线使用 Mbed)在较高的模拟输入频率下显示延迟