プロが教えるわが家の防犯対策術!

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

do while i < 10
Response.Write "■"
i = i + 1
WScript.Sleep(1000)
loop

A 回答 (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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/26 11:01

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