タイマーに関するコードを以下のように書いてみました
10秒ごとにRedispは発生するけどLabel2.textは更新されません
Server.Transfer("URL")を入れてもページが切り替わることは
ありませんでした
StopをRedispに入れたところ
ちゃんとRedispは10秒おきに実行されているのですが・・・
なぜコードの内容が実行されないのか教えてくださいm(_ _)m
よろしくお願いします
Dim MyTimer As System.Timers.Timer
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' ページを初期化するユーザー コードをここに挿入します。
MyTimer = New System.Timers.Timer
MyTimer.Interval = 10000
MyTimer.Enabled = True
AddHandler MyTimer.Elapsed, AddressOf Redisp
If Not Page.IsPostBack Then
End If
End Sub
Private Sub Redisp(ByVal source As Object, ByVal e As Timers.ElapsedEventArgs)
Label2.Text = Format(Now) + "時点での情報"
End Sub
いろいろ調べているとサーバ側だけでイベントが完結していることが
わかりました。
postbackさせるにはクライアント側でタイマーを動作させないと
だめ??というところまではわかりました
後環境書いてなかったので
ASP.net(VB 2003)でWinXPです
以上よろしくお願いします
今回のように、10秒おきにサーバ側と通信させるような場合には、
サーバ側の VB.NETではなく、クライアント側のJavaScript(JScript)で
setTimeout メソッドや setInterval メソッドを呼び出す事で対応できます。
http://www.codeproject.com/aspnet/tcdoom_webtimer.asp
さもなくば、HTML側の METAタグに、
<meta http-equiv="refresh" CONTENT="10">
とか
<meta http-equiv="refresh" CONTENT="10;URL=foo.aspx?……">
などと書いて、10秒後に遷移させるという手もあるらしいです。
(GDNJの掲示板には、このmetaタグが埋め込まれているっぽい)
解答ありがとうございます
解決しました
ツイート | ![]() |