如何暂停 - 每个迭代php初学者

时间:2013-04-18 01:52:03

标签: php foreach

由于某种原因,这段代码不会在迭代之间暂停,我希望它在加载缩略图之间暂停一秒钟。我做错了什么?

foreach ($media->data as $data) {
  echo "<img src=\"{$data->images->thumbnail->url}\">";
  sleep(1);
}

4 个答案:

答案 0 :(得分:2)

如果您希望生成的代码在终止脚本之前到达客户端,则可能必须强制刷新它:

foreach ($media->data as $data) {
    echo "<img src=\"{$data->images->thumbnail->url}\">";
    @ ob_flush();
    @ flush();
    sleep(1);
}

但这非常愚蠢,很可能会导致客户端格式化问题。你为什么不像其他人一样做,一次发送整个页面?

或者,为了更好地对客户端控制加载的内容和速度,请使用JavaScript。

答案 1 :(得分:1)

包含的代码是服务器端代码。它在服务器上运行,生成html,然后将其发送到客户端。因此,您可能会看到的唯一影响是,您的网页加载速度会更慢。

为了获得您想要的效果,您需要使用在用户浏览器中运行的javascript,并且可以动态生成具有暂停和动画以及其他效果的内容。

答案 2 :(得分:1)

此延迟仅发生在服务器上。页面和图像文件仍然需要下载到客户端并在那里呈现。如果你想要的东西实际上加载图像之间的延迟,你可能想要看一个加载图像的JavaScript方法。

答案 3 :(得分:1)

sleep仅在服务器端发生(在输出到客户端计算机之前)。您需要通过js或css3选择器

执行此操作

你最好的选择是使用css3选择器而不是js,但你可以使用任何一个。

-webkit-transition: opacity 1s;
-moz-transition: opacity 1s;
transition: opacity 1s;