Отображение экрана загрузки, пока сервер генерирует страницу
У меня есть сценарий ASP, который генерирует содержимое страницы в ответ на некоторые параметры GET.
Иногда генерация страницы занимает немного времени (выполнение запросов к базе данных и т. Д.), И я хотел бы показать что-то пользователю во время загрузки страницы. Каков стандартный способ сделать это?
Я не использую AJAX на странице в данный момент.
2 ответа
Вы можете использовать Response.Flush
заставить что-то в браузере:
Response.Write("<div id=""preloader"">Loading, please wait...</div>")
Response.Flush()
'long running code...
'long running code...
'long running code...
Response.Write("<script type=""text/javascript"">document.getElementById(""preloader"").style.display = ""none"";</script>")
Есть ли причина, по которой вы не используете AJAX? У меня была похожая проблема на стажировке, которую я проходил прошлым летом. Сначала я решил проигнорировать AJAX, частично из-за лени и нежелания изучать использование javascript/ajax. Тем не менее, становилось все более очевидным, что без ajax пользовательский интерфейс значительно затрудняется (из-за того, о чем вы говорите здесь... длительная работа на стороне сервера).
Если вы в состоянии "AJAXify" для своего приложения, то, я полагаю, вы могли бы добавить загрузочное изображение при первоначальном запросе, а затем заменить его на заданное содержимое при возврате асинхронного вызова. Jquery делает подобные вещи довольно простыми благодаря различным возможностям AJAX и функциям обратного вызова.
Конечно, вы, вероятно, уже знаете обо всем этом... так что, пожалуйста, простите меня, если я просто повторю очевидное!