Ich habe eine Funktion, die viel Zeit in einer Webanwendung benötigt. Also entschied ich mich, einen Thread dafür zu erstellen.Etikett nach dem Laden der Seite aktualisieren
Thread t = new Thread(getEventErrors);
t.Start();
Die Funktion berechnet einen Wert und wendet ihn in einem Label an.
Dies ist ein Problem, weil in asp.net die Seite einmal geladen und das Etikett bis dahin nicht aktualisiert wird.
Wie implementiere ich dies mit dem AJAX?
Gibt es einen Weg, auf dem die Seite geladen wird und nachdem der Wert berechnet wurde, wird die Bezeichnung aktualisiert?
Jeder Beispielcode wird sehr geschätzt.
Dank
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");
}
}
Dies ist der Code .. aber ich will mit Ajax der ganzen langer Zeit raub Code zu handhaben.
Zum Beispiel sollte die Seite schnell geladen werden und die lange Funktion sollte im Thread mit einem Warte-Cursor geladen werden, wenn der Wert erhalten wird, wird es in der Beschriftung oder einem anderen Steuerelement angezeigt.
Wie lange Zeit? 5 Sekunden oder 5 Minuten? – Aristos
Sie sollten beginnen, die Datenbank Query/Page Events usw. zu optimieren, um nach Threads zu gehen. Es braucht viel Speicher. – Pankaj
@Aristos: es dauert 7 -8 Sekunden, um die erste Seite zu laden, und wenn ich die Funktion entferne, dauert es 3 - 4 Sekunden. – user175084