-1

私は vb に単純なタイマー メソッドを持っていますが、現在は何もしません。ただし、一度実行すると、ページ上の他のすべてのコードが機能しなくなります。

例として、静的なプレース ホルダーにコントロールを追加するイメージ ボタンがページにあるとします。

btnCreate.Text = "Create"
btnCreate.ID = "btnCreateSpecialNotes"
AddHandler btnCreate.Click, AddressOf btnCreateSpecialNotes_Click
plhCreateSpecialNotes.Controls.Add(btnCreate)

したがって、timer.tick メソッドがなければ、(含まれていない他のコードと共に) 期待どおりに起動し、私が望むことを実行しますが、timer.tick が発生すると、すべてがフリーズし、何も機能しません。

私のタイマーは次のように設定されています

<asp:Timer ID="specialNotesTimer" runat="server" Interval="2000" ontick="specialNotesTimer_Tick"></asp: Timer>

そしてコードビハインドで...

Protected Sub specialNotesTimer_Tick(Byval sender as object, Byval e as eventArgs) Handles specialNotesTimer.Tick
'Do things to the page
End Sub
4

2 に答える 2

2

免責事項: System.Web.UI.Timer クラスを使用したことはありません。

クライアント側の JavaScript コードとサーバー側の C# コードの間に混乱があると思います。

MSDN を読んだ後、タイマー コントロールは 2000 ミリ秒ごとに完全なポストバックを開始するようです (上記のように 2 秒)。これは JavaScript でのみ行うことができ、サーバー上で何らかのタスクを実行するサーバー側のイベント ハンドラーが必要です (specialNotesTimer_Tick と呼びます)。

ここで、このタスクの実行に 2 秒以上かかる場合、Web ページは常にポストバック (ポストバック?) と画面の更新を行っているため、Web ページに情報がまったく表示されないと思います。

提案:

  1. タイマーの使用方法を再考する
  2. タイマー間隔を長くする
  3. 処理が非同期に行われるように UpdatePanel を追加して、画面の更新を回避します。

お役に立てれば。

于 2013-04-14T06:29:22.550 に答える
-1

ここで私が抱えていた主な問題は、html の流れが終わらないことだったと思います。ページをゼロからゆっくりと再起動し、ほぼ同じコードを使用しましたが、すべての終了タグと html にないものを 3 回チェックしただけで、問題自体が解決したように見えました。

申し訳ありませんが、詳細な回答はありませんが、ここの古いコードが機能しなかった理由はまだわかりませんが、ページを最初からやり直すとうまくいきました。

于 2013-04-17T16:21:03.480 に答える