下記の参考URLのように、いったん表などを先に表示してしまい、
その後に時間のかかる処理を行い、少しずつ表示されていくようにしたいのですが、
やり方がわかりません。
参考URLを真似してみたのですが、ページ全体が表示されるまで
どうしても画面が止まってしまいます。(たまに2~3段階にわけて表示される)
ソースを見る限りJavaScriptで後半に実際の数値や文字列を
ページに追加していっているのだと思いますが、それ以上が分かりません。
どう検索していいのものか分からず困っています。
ご存知の方がいらっしゃいましたらご教授くださいませ。
《参考URL》
http://www.muryoutouroku.com/free/free06.html
http://www.it-work.jp/samples/gsearch/
No.1ベストアンサー
- 回答日時:
こんにちは。
えっと、おそらくテーブルタグを使用していた場合において、画面が止まって見えるというのは、テーブルタグの閉じタグが出力されていないためだと思われます。
そして、テーブルの閉じタグは時間のかかる処理の前に出力した方がよいのですが、まず以下の実験をしてみてください。以下の実験において、ブラウザはIE(インターネットエクスプローラー)とします。
<?
for($i=0;$i<5;$i++) {
print "b";
flush();
sleep(1);
}
?>
おそらく、やはり画面が真っ白のまま5秒後に「b」が5つ表示されたと思います。
では、以下に修正します。
aaaaaaaaaaa
<?
for($i=0;$i<5;$i++) {
print "d";flush();
sleep(1);
}
?>
これでも、同じような結果になったと思います。では、次に以下のように修正します。
<BR>
<?
for($i=0;$i<5;$i++) {
print "d";flush();
sleep(1);
}
?>
詳しくは知りませんが、IEは256バイト分のデータ(改行や空白文字でもかまいません)を受け取らないと、真っ白のままのようです。が、「改行タグ」を一個でもうけとると即座に受け取ったデータを表示してくれました。
より具体的に修正すると、
<HTML><HEAD><TITLE>TEST</TITLE></HEAD>
<BODY>
<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#0FFF000" height="200">a </td>
</tr>
</TABLE>←時間のかかる処理をやる前に必ず出力してテーブルタグを終了させる
<?
for($i=0;$i<5;$i++) {
print "d";flush();
sleep(1);
}
?>
サーバ側の方なんですが、ブラウザに出力する前に、バッファが満タンにならないと送信しない設定になっていることが多いので、「flush関数」でその処理を無効にします。
時間のかかる処理をJavaScriptでやるかサーバ内でやるかは別にして、どちらにしろテーブルを形成した後、文字や数字で埋めていくには、JavaScriptしかないと思います。
そういった処理は、JavaScript専門の方でお聞きください。
昔、JavaScriptで似たようなことはやりましたがなにせ、だいぶ前のことで・・・。(^ ^ ;ゞ
http://php.planetmirror.com/manual/ja/function.f …
flush()という関数があったんですね!
おかげさまで問題が解決されました。
ありがとうございました。
http://php.planetmirror.com/manual/ja/function.o …
ob_implicit_flush()という関数を使うとflush()を明示的にコールする必要がなくなるみたいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- その他(IT・Webサービス) MacとWindows Google検索した時のURL表示の違いについて 1 2022/11/17 10:38
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- Amazon Amazonショッピングのアプリで中々サインイン出来なくて困っています。 メールアドレスとパスワード 1 2023/04/09 23:04
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- WordPress(ワードプレス) WordPressのダッシュボードに入れなくなりました。 サイトのURLの最後にwp-login.p 1 2022/11/04 18:38
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php 入力画面から確認表示画面...
-
「ページネーション」で検索キ...
-
php history.back()の戻るボタ...
-
POSTで受け渡したものを保存し...
-
データベースの登録失敗の時の...
-
GETのメリットについて
-
ログイン画面から入って、「戻...
-
HTMLフォームのデータ引き継ぎ...
-
Dosブロンプトでtabを出力したい
-
wordの差し込み印刷で文字...
-
「取得先」という表現について
-
バッチファイルでpingの結果を...
-
DTOとEntityの差は何ですか。
-
WordでExcelデータを差込...
-
VBA コレクションに2次元配列...
-
【C#】DataGridViewの最大列数...
-
PHPでの画像の形式の変換
-
shシェルスクリプト 空白行の...
-
VBS「開いているページ」のURL...
-
【VBA】EXCELブックを開かずに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php 入力画面から確認表示画面...
-
ログイン画面から入って、「戻...
-
POSTで受け渡したものを保存し...
-
VBAで重複チェックの仕方を教え...
-
php に関して質問です。 各ユー...
-
asp.netでのセッションを使用し...
-
閉じるボタン「×」を制御したい
-
PHPで値を保持する方法
-
PHPで返信メールにチェックボッ...
-
HTMLエスケープ処理とデーター...
-
「ページネーション」で検索キ...
-
htmlspecialcharsについて
-
PHPとMySQLで掲示板を作る際、...
-
HTMLエスケープすべき場所につ...
-
動的にhtmlテーブルを表示
-
ブラウザの戻るボタンで重複登...
-
セッションを使用したページ遷移
-
PHP スマーティ
-
PHP+MySQLからHTMLページを自動...
-
フォームを使わずにPOST送信す...
おすすめ情報