• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:処理前の「お待ちください」)

JavaScriptで時間のかかる処理の前に「お待ちください」メッセージを表示する方法

このQ&Aのポイント
  • JavaScriptを使用して、時間のかかる処理の前に「お待ちください」のメッセージを表示する方法について教えてください。
  • 上記のコードでは、メッセージが表示される前に時間のかかるメソッドが実行されてしまい、画面上の表示が変わりません。画面上にメッセージが表示された後に処理が実行されるようにする方法を知りたいです。
  • Ajax通信ではなく、単純な計算やタグの書き換えなどの処理である場合、JavaScriptでメッセージが表示された後に処理が実行されるようにする方法を教えてください。

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

  • ベストアンサー
回答No.4

<body> <p id="mess" style="display:none">ちょっと、待てよ~</p> <script> function test () {  n = 1000;  var i, j, k;  for (i = n; i--; )   for (j = n; j--; )    for (k = n; k--; ) ;    return; } function wait (func) {  var cbFunc = function () {   setTimeout (func, 5);   setTimeout ("mess(0);", 5);  };    mess(1);  setTimeout (cbFunc,5); } function mess (state) {  document.getElementById ('mess').style.display = state ? 'block': 'none'; } wait (test); </script>

その他の回答 (3)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

ANo1です。 ダメですか… では、試しに alert() を入れたらどうなるのでしょうか? function wait{ $("#WaitMsg").html("お待ちください…"); //試しにalert alert("test"); Test(); ←時間がかかるメソッド $("#WaitMsg").html("完了しました"); } これなら、表示できますか?

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.2

画面表示を更新する処理が必要なのかもしれません。 >$("#WaitMsg").html("お待ちください…"); の後に、 win.refresh(); を入れてみたらどうでしょうか。 参考 http://www.openspc2.org/JavaScript/Ajax/ref/PrototypeWindowClass/ver1.2.1/ref/window/refresh/index.html

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

「お待ちください…」を表示させるために、ブラウザに一旦処理を渡す必要があるのでは? 例えば、 $("#WaitMsg").html("お待ちください…"); setTimeout( function(){   Test();  //←時間がかかるメソッド   $("#WaitMsg").html("完了しました"); }, 10); とか。(未検証です)

ginfix
質問者

お礼

ありがとうございます。 ご指摘いただいた方法を取り入れてみたのですが、現象変わらずでした…。

関連するQ&A