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

この遅延はサーバー上でのみ発生します。ページと画像ファイルはクライアントにダウンロードしてレンダリングする必要があります。実際に画像を読み込み、その間に遅延があるものが必要な場合は、画像を読み込む JavaScript メソッドを検討することをお勧めします。

于 2013-04-18T01:55:28.957 に答える
1

これsleepは、サーバー側 (クライアント コンピューターへの出力前) でのみ発生します。これを行うには、js または css3 セレクターを介してこれを行う必要があります

あなたの最善の策は、js の代わりに css3 セレクターを使用することですが、どちらも使用できます。

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

含まれているコードはサーバー側のコードです。サーバー上で実行され、html を生成し、それをクライアントに送信します。したがって、ほとんどの場合、表示される唯一の効果は、ページの読み込みが遅くなることです。

必要な効果を得るには、ユーザーのブラウザーで実行される JavaScript を使用する必要があり、一時停止やアニメーション、その他の効果を含むコンテンツを動的に生成できます。

于 2013-04-18T01:55:12.410 に答える