У меня есть страница, которая выполняет долговременную задачу (от 10 до 15 секунд) в методе page_load.ASP.NET - отображение сообщения во время загрузки страницы
У меня есть javascript-код на стороне клиента, который отобразит для пользователя приличную анимированную gif-страницу «загрузка страницы».
Я могу вызвать метод JavaScript из кода для отображения анимированного gif-страницы, однако долговременная задача висит в пользовательском интерфейсе так, что анимированный gif фактически не отображает пока не будет завершена долговременная задача, что является полной противоположностью тому, что я хочу.
Чтобы проверить это, в моем методе page_load я делаю вызов метода JavaScript для отображения анимированного gif. Затем я использую Thread.Sleep (10000). Случается, что анимированный gif показывается только после завершения Thread.Sleep.
Очевидно, что я делаю что-то неправильное.
Любые советы будут оценены.
Спасибо.
Chris
Ниже приведен пример отделенного кода:
protected void Page_Load(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript
(GetType(), "Javascript", "javascript: ShowWaitIndicator(); ", true);
Response.Flush();
Thread.Sleep(10000);
}
Вы не можете вызывать javascript из кода. Все, что вы можете сделать, это добавить его в поток ответов, что и делает ClientScript.RegisterStartupScript. В конечном итоге это будет отправлено обратно в браузер. Это два совершенно разных контекста. Codebehind работает на сервере, javascript выполняется в браузере. – womp