PHP中的sleep函数

问题描述

我有一个PHP页面,我需要在其中显示数据库中的图像,等待几秒钟,这又一次来自数据库并分别显示一个图像。 我尝试使用sleep()函数,但是它运行了整秒钟,然后一次显示所有图像。
示例:
image1 3秒
image2 2秒
所以它首先需要显示image1等待3秒,然后显示image2 2秒,依此类推
但现在它运行了5秒钟,同时显示了iamge1和image2
我的代码

 <div class="Box">
            <?
            $select= "select * from filemanager WHERE day='$dayofweek' and ('$curr_time'>=fromTime and '$curr_time'<=toTime)";
            echo $select;
                $res1 =  MysqLi_query($con,$select);
                $num = MysqLi_num_rows($res1);
                echo $num;
                while ($data1 = $res1->fetch_assoc())
                {
                    $file_name=$data1['fileName'];
                    $path='/uploads/mediaFile/'.$file_name;
                    $sec=$data1['seconds'];
                    echo $sec;
            ?>
            <img src="<?echo $path?>" alt="" />
            <?
            sleep($sec);
                }
            ?>
            
        </div>

请咨询。
谢谢

解决方法

您想暂停php脚本。 php脚本在服务器上运行。 暂停服务器是一个非常糟糕的想法。 :-)

您需要一台能够满足尽可能多请求的快速服务器。因此,忘记计划,让我们制定一个新计划。

您有一个提供图片的服务器。您有一个客户希望这些图片每秒钟旋转一次。在服务器端,您需要一个脚本(用php编写),该脚本使用特定图片的编号进行调用。该脚本将数据提供给客户端。

在客户端,您有几种可能性:

(a)在客户端,您需要一个现在启动的javascript,然后对服务器脚本进行AJAX调用。它将返回的图片添加到页面,然后再次等待一段时间。

(b)您运行的javascript会立即重新启动客户端,然后累加一个计数器,该计数器告诉服务器脚本下一张图片。

我个人更喜欢(a),但这只是我个人的选择。

,

您可以尝试使用以下方法(JS):

var img = 1;

function request() {
    var xhr = new XMLHttpRequest();
    xhr.open('POST','fetch.php');
    xhr.onload = function() {
        if (xhr.status != 200) {
            // Something went wrong
        } else {
            var res = xhr.response;
            // res = fetched image
        }
    };
    xhr.send('img=' + img);
    img += 1;
}

setInterval(request,10000);

关于 setTimeout setInterval https://javascript.info/settimeout-setinterval