私は、Webアプリケーションで多くの時間を費やしている機能を持っています。 私はそれのためのスレッドを作成することにしました。ページ・ロード後のリフレッシュ・ラベル
Thread t = new Thread(getEventErrors);
t.Start();
この関数は値を計算し、ラベルに適用します。
これは問題です。asp.netではページが一度読み込まれ、それまでラベルは更新されていないためです。
これをAJAXを使用して実装するにはどうすればよいですか?
ページが読み込まれる方法はありますか?値が計算された後、ラベルが更新されますか?
いずれのサンプルコードも高く評価されます。
おかげ
private void getEventErrors()
{
EventLog eventLog = new EventLog("Application", ".");
getEvents(eventLog.Entries);
}
private void getEvents(EventLogEntryCollection eventLogEntryCollection)
{
int errorEvents = 0;
foreach (EventLogEntry logEntry in eventLogEntryCollection)
{
if (logEntry.Source.Equals("Application Name"))
{
DateTime variable = Convert.ToDateTime(logEntry.TimeWritten);
long eventTimeTicks = (variable.Ticks);
long eventTimeUTC = (eventTimeTicks - 621355968000000000)/10000000;
long presentDayTicks = DateTime.Now.Ticks;
long daysBackSeconds = ((presentDayTicks - 864000000000) - 621355968000000000)/10000000;
if (eventTimeUTC > daysBackSeconds)
{
if (logEntry.EntryType.ToString() == "Error")
{
errorEvents = errorEvents + 1;
}
}
}
}
btn_Link_Event_Errors_Val.Text = errorEvents.ToString(GUIUtility.TWO_DECIMAL_PT_FORMAT);
if (errorEvents == 0)
{
lbl_EventErrorColor.Attributes.Clear();
lbl_EventErrorColor.Attributes.Add("class", "green");
}
else
{
lbl_EventErrorColor.Attributes.Clear();
lbl_EventErrorColor.Attributes.Add("class", "red");
}
}
が、これはコードです..しかし、私はすべての長い時間AJAXを使用してコードを消費を処理します。
例えば、ページが高速に読み込まれ、長い関数は、値が取得されたときに待機カーソルをスレッドにロードし続ける必要があります。
時間はどれくらいですか? 5秒または5分? – Aristos
スレッドの実行に備えて、データベースのクエリ/ページイベントなどの最適化を開始する必要があります。それは多くの記憶を必要とする。 – Pankaj
@Aristos:最初のページを読み込むのに7-8秒かかります。機能を削除するには3 - 4秒かかります。 – user175084