• ベストアンサー

IIS+VBScriptでの処理待ちについて

WindowsXP上でIIS+VBScriptで構築しております。 次のような感じで処理の進捗状況をバー形式で表示させたい のですが、WScript.Sleepが使えない環境らしく、以下を 実行するとWScript.Sleepの行でエラーになるため、それに 変わる書き方を教えていただけないでしょうか。 よろしくお願いいたします。 do while i < 10 Response.Write "■" i = i + 1 WScript.Sleep(1000) loop

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

  • ベストアンサー
noname#259269
noname#259269
回答No.1

do while i < 10 Response.Write "■" i = i + 1 WScript.Sleep(1000) loop もしかしてこの↑コーディングは、<% ~ %> の中に書いていたりしますか? サーバ側で Sleep させても、クライアント側にそのつど反映される訳ではありませんよ? 処理がクライアント(ブラウザ)で動くか、サーバ(IIS)内で動くかを理解されていますか? その辺があやふやに見えますので、整理・理解されるべきかと思いますね。 とりあえず、以下にクライアントだけで動くコードサンプルを載せますので、a.htm などの名前でデスクトップに保存し、IEで実行してみてください。 <HTML> <HEAD> <script type="text/VBScript"> Dim intervalId Dim counter counter = 10 intervalId = SetInterval("ShowWait", 500) Sub ShowWait() Dim c Set c = document.getElementById("spText") c.innerText = c.innerText & "■" counter = counter - 1 If counter <= 0 Then ClearInterval(intervalId) End If End Sub </script> </HEAD> <BODY> <span id="spText"/> </BODY> </HTML>

crossone
質問者

お礼

edp3142様、ご回答ありがとうございます。 edp3142様の仰るとおり、どちらで処理されているかの理解が 出来ていなかったようです。 私の書いたコードは確かに<% ~ %>の中に書いており、サーバ側で 処理させておりましたが、私がやりたいことはクライアント側で 処理させるべきだったとご指摘いただいて気付きました…。 いただきましたサンプルも大変勉強になりました。 本当にありがとうございました。

関連するQ&A