Обновление Aspx-страницы каждые 10 сек

  • Автор темы EuGenius
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

EuGenius

#1
Как заставить страницу обновлять себя каждые 10 секунд? Кто работал с таймерами, подскажите. Или подкиньте другую идею...
желательно, чтобы был такойц эффект, как при нажатии на F5...

есть такой код. таймер работает(правда как-то коряво).но время на странице не отображается. может надо как-то обновлять....?
Код:
Timer timer10;	
protected void Page_Load(object sender, EventArgs e)
{		
timer10 = new Timer();
timer10.AutoReset = true;
timer10.Interval = GetNewInterval();
timer10.Elapsed += new ElapsedEventHandler(timer_Elapsed);
FormLoad();
timer10.Start();
}
protected void timer_Elapsed(object source, System.Timers.ElapsedEventArgs e)
{	  
timer10.Stop();
FormLoad();
timer10.Interval = GetNewInterval();
timer10.Start();  


}
protected void FormLoad()
{
Time.Text = DateTime.Now.ToShortTimeString();

}
protected double GetNewInterval()
{
double interval = 1000*(DateTime.Now.Second % 10.0f);
if (interval == 0.0) interval = 10000;
return interval;
}
Благодарю за помощь.
 
P

Pasha

#2
Для: EuGenius
Насчет таймера: почитай внимательно про жизненный цикл aspx-страницы. Вот хотя бы эту статью. Все, что останется после рендеринга от контрола Time - это кусочек текста в HTML пару байт в поле ViewState. Сам объект, вместе с таймером, формой и страницей, будет отдан в лапы сборщика мусора.

А для обновления страницы надо вставить
Код:
<meta http-equiv="refresh" content="10">
между тэгами head.
 
E

EuGenius

#3
Хорошо. а как же мне тогда поступить. мне надо каждые 10 сек выбирать разную инфу из бд. я думал это делать по таймеру...
 
P

Pasha

#6
Для: NikSoft
<!--QuoteBegin-NikSoft+3:06:2007, 08:08 -->
<span class="vbquote">(NikSoft @ 3:06:2007, 08:08 )</span><!--QuoteEBegin-->Решение, альтернативное "refresh" , приводится здесь
[snapback]67930" rel="nofollow" target="_blank[/snapback]</div>[/quote]Автору "альтернативного" решения надо оторвать руки за использование Form1.Post1.click(); Для вызова постбэка из скрипта надо использовать ClientScriptManager.GetPostBackEventReference

Для: EuGenius
В документации ajax.asp.net есть пример с обновлением части страницы по таймеру: http://ajax.asp.net/docs/tutorials/IntroToTimerControl.aspx
 
Статус
Закрыто для дальнейших ответов.