我有一个在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耗时代码。
例如,页面应该加载速度很快,并且long函数应该在等待游标的线程中继续加载,当该值被获取时,它会显示在标签或任何其他控件中。
需要多长时间? 5秒钟或5分钟? – Aristos 2012-04-02 18:30:22
你应该开始优化数据库查询/页面事件等等。它需要很多内存。 – Pankaj 2012-04-02 18:34:18
@Aristos:加载第一页需要7-8秒,如果我删除该功能需要3 - 4秒。 – user175084 2012-04-02 18:44:38