웹 응용 프로그램에서 많은 시간을 사용하는 기능이 있습니다. 그래서 나는 그것에 대한 스레드를 만들기로 결정했습니다.페이지로드 후 새로 고침 레이블
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");
}
}
이 코드입니다 ..하지만 난 모든 시간이 아약스를 사용하여 코드를 소모를 처리합니다.
예를 들어, 페이지가 빠르게로드되어야하고 값이 얻어 질 때 긴 함수가 대기 커서로 스레드에로드를 계속로드해야합니다. 값이 가져 오면 레이블이나 다른 컨트롤에 표시됩니다.
시간이 얼마나 걸립니까? 5 초 또는 5 분? – Aristos
스레드에 대한 데이터베이스 쿼리/페이지 이벤트 등을 최적화하기 시작해야합니다. 그것은 많은 기억을 필요로합니다. – Pankaj
@Aristos : 첫 페이지를로드하는 데 7-8 초가 걸리며 기능을 제거하는 데 3-4 초가 걸립니다. – user175084