0

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

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

4 回答 4

2

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

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

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

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

于 2013-04-18T01:58:28.360 回答
1

包含的代码是服务器端代码。它在服务器上运行,生成 html,然后将其发送到客户端。所以很可能你会看到的唯一效果是你的页面加载速度会更慢。

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

于 2013-04-18T01:55:12.410 回答
1

这种延迟只会发生在服务器上。页面和图像文件仍然需要下载到客户端并在那里呈现。如果您想要实际加载图像的东西,两者之间有延迟,您可能需要研究加载图像的 JavaScript 方法。

于 2013-04-18T01:55:28.957 回答
1

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

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

-webkit-transition: opacity 1s;
-moz-transition: opacity 1s;
transition: opacity 1s;
于 2013-04-18T01:57:20.260 回答