dポイントプレゼントキャンペーン実施中!

カテゴリが異なると思い、改めて質問致します。
PHPファイルの読み込み中に「Now Loading」を表示したいのですが、
(関連ページ http://oshiete1.goo.ne.jp/qa2753468.html)
PHPファイルで作成されている色々なサイトを見てみましたが、表示されるまで「Now Loading」を表示しているページってないんですよね。(1ページぐらいあってもよさそうなものですが)ということは、PHPファイルの読み込み中に「Now Loading」を表示する事はやはり不可能なのでしょうか?
どうかアドバイスの程よろしくお願い致します。

A 回答 (2件)

こんにちわ



あえて「できない」と言わせて下さい。
PHPやその他のインタプリタ言語は基本的に順序どおりに処理を行います。
一度レンダリングされたHTMLなどを同じプロセスで破棄し、
違うものにすげ替える、ということは難しいと思います。
(かなりトリッキーなやり方をすればあるいは・・

順序的には、

クライアントPCからサーバーへのアクセス(サーバー受付)
       ↓
サーバー側でPHPを使ってHTMLを生成(サーバー処理)
       ↓
生成されたHTMLタグをクライアントに投げ返す(サーバー処理終了)
       ↓
投げ返されたHTMLをクライアントのブラウザが解析して表示

って感じです。

ので、"PHP"だけで実装するのは難しく、
どうしてもという話ならjavascriptを利用する方法が一般的だと思います。

javascriptは投げ返されたHTMLをクライアント上だけで変更することができます。
もしサーバー上にある情報が必要になることがあればAjaxといわれている、
非同期(ページ遷移をすることなく)でサーバーと通信をし、情報を得た後にHTMLの表示を書き換えるという手段が用いられます。

しかしながらPHPの実行速度が遅い為、Now Loadingを表示したいという要件はなかなか聞いた事がないですね^^;
プログラムは記述の仕方によっては早くも遅くもなるので、そちらを見直すのも一つの解決方法だと思います。


そんな感じですー。
    • good
    • 0

前回提示したjavascriptでの表示切替は興味がなかったということで


よろしいのでしょうか?

そもそもhttpは出したら出しっぱなしなので、出したり消したりなど
という考え方はありません。その前提で動作しているPHPがデータを
垂れ流しするわけですから、一度Now Loadingを表示してしまったら、
javascriptなど「消す処理」をしなければ消えません。
いわゆる「覆水盆に返らず」ってやつですね。

逆説的に言えば、PHPで提供するサービスでNow Loadingが必要になる
ようなものを作るのはよろしくないという解釈でもいいでしょう。

もしNow Loadingがどうしても必要なマルチメディア系のコンテンツ
やプログラムを表示するのであればフラッシュなどをご利用に
なるとよろしいかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!