2009-09-08 2 views
1

どのようにasp.netで毎時何かを表示するには?asp.netで毎時何かを表示する方法は?

初心者モードでのショーメッセージの例は一度だけですか?

私はasp.net ajaxタイマーコントロールに使用しますか?


protected void Timer1_Tick(object sender, EventArgs e) 
{ 
    MessageBoxShow(Session["playsound"].ToString()); 
    Session["playsound"] = 1; 
} 

しかしなかれヌル?

--------------------------- 
Message from webpage 
--------------------------- 
Object reference not set to an instance of an object. 
--------------------------- 
OK 
--------------------------- 
+0

ウェブサイトのすべてのユーザーにこれを表示する必要があるか、1時間ごとに表示する必要があるアプリケーションのユーザーに表示する必要がありますか? –

+0

はい非常に時間とすべての人 –

答えて

0

あなたは

window.setInterval 

方法

を使用することができますこれは、その関数への各呼び出しの間に一定の時間遅延して、繰り返し関数を呼び出します。

intervalID = window.setInterval(func, delay[, param1, param2, ...]); 

これを行うための詳細情報を読む

window.setInterval

0

クライアントでは?

これを行うには、javascriptタイマーを使用する方法があります。

+0

はいクライアントで、私はasp.netのajaxタイマーコントロールのために使用できますか? –

0

一つの方法は、ページ上のアイテムを表示するNextTimeでセッション変数を持っている可能性があります。ヌルのものが今すぐアイテムを表示できる場合(またはNextTimeがスケジュールされている場合)すべてのページの更新時に、現在の時刻が次の時刻の後にある場合は、項目を表示し、NextTimeセッション変数を次の時間にリセットします。

これは、ユーザーがサイトをナビゲートしていて、ページが更新されている場合にのみ機能します。

+0

protected void Timer1_Tick(オブジェクト送信者、EventArgs e) { MessageBoxShow(Session ["playsound"]); セッション["playsound"] = 1; } しかし、いつもヌルですか? –

+0

タイマーは必要ありません。すべてのページの読み込み時にサウンドを再生するチェックを行います。 –

+0

私は-1を得ていませんか?説明してください? –

0

javascript変数window.nameを使用すると、ページの更新間隔の間にその値を保持できます。

「最後にチェックした時間」をそこに保存して、現在の時刻と比較することができます。

ユーザーが別のサイトに移動し、そのサイトがこの変数をクリアしてから、正方形に戻った場合。

1

セッションのようなサウンドがタイムアウトしている可能性があります。 AJAX呼び出しの間、あなたのセッションがサーバー上で有効期限が切れ、場合、ToString呼び出しはnull参照で動作することがあります。これは、AJAXクライアントスクリプトはあなたを教えしようとしているものと一致するように見えるでしょう

MessageBoxShow(Session["playsound"].ToString());

Session["playsound"];が初期化されていない可能性もあります。

ASP.NETのデフォルトのセッションの有効期限は20分です.1時間のタイマーを実行する場合は注意が必要です。

0

簡単な答えは、小さなクッキーを使用して元の時間を保存してからそれを頻繁に照会することです(〜5分?)この方法では、セッションがなくなり、ユーザーがページを離れる場合はSOLではありません(必要な場合)。

免責事項:私はAJAXにまだ足を載せていませんが、私はASP.netを夏のすべてにプログラミングしています。

関連する問題