• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:読み込み開始から読み込み終了まで処理中表示する方法)

ページ読み込み中に「ロード中」と表示させる方法

このQ&Aのポイント
  • ページを読み込み開始してから読み込み終了までの間に「ロード中」と表示させる方法についてアドバイスをいただきたいです。
  • http://okwave.jp/qa/q2753468.htmlを参考にしたが、「ロード中」という表示がされなかったため、どのように書けば良いか分かりません。
  • ブラウザ上に「ロード中」と表示させ、しばらくたった後に「ロード中」を消して「本文です」と表示させたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

きっちりやるならやはりajaxで処理する方がよいでしょう viewdata.php <script> function createXMLHttpRequest(){ if( window.XMLHttpRequest ){ return new XMLHttpRequest(); }else if( window.ActiveXObject ){ try{ return new ActiveXObject( "Msxml2.XMLHTTP" ); }catch(e){ return new ActiveXObject( "Microsoft.XMLHTTP" ); } } return null; } function getData( serverURL, objID ){ var ajax = createXMLHttpRequest(); ajax.open( "GET", serverURL ); ajax.onreadystatechange=function(){ if(( ajax.readyState == 4 ) && ( ajax.status == 200 )){ if(objID!=""){ var obj = document.getElementById( objID ); obj.innerHTML = ajax.responseText; } } } ajax.send( '' ); } window.onload=function(){ document.getElementById("hoge").innerHTML="loading ..." getData("loaddata.php","hoge"); } </script> <div id="hoge"></div> //loaddata.php <? sleep(3); ?> success!

iroha_168
質問者

お礼

ご回答ありがとうございます。 ご教示いただいたソースで意図した動作となりました。 このたびはどうもありがとうございました。 以上、よろしくお願いします。

その他の回答 (1)

  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.2

確認したところSafariがダメ、その他メジャーなブラウザはOKでしたので、バッファリングの問題かと。 サーバ側で出力したからといってすぐに表示されるわけではなく、Apacheやブラウザはある程度のデータ量をまとめて送信/表示します。このためデータ量が少ない場合、意図したとおりに表示されないことがあります。 試しに div「ロード中」の前に十分な文字列を加えてみて下さい。 (ちなみにSafariでは 350byteほど 足してやると動作しました) 蛇足ながら、確かブラウザにより、きちんと table タグが閉じられるまではテーブル内のコンテンツは一切表示されないということもありましたので、table内に配置している場合は要注意です。

iroha_168
質問者

お礼

ご回答ありがとうございます。 ご指摘のように十分な文字を追加した所、意図した動作となりました。 このたびはどうもありがとうございました。 以上、よろしくお願いします。

関連するQ&A