Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
evgenybe

Медленная загрузка тяжелой страницы.

21.05.2012, 15:52. Показов 2346. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Одна из страниц довольно "тяжелая". Появляется сначала пустая страница, а чуть позднее начинают появляться все контролы. И пользователь, не дождавшись ее загрузки, начинает творить глупости.
Как сделать, чтобы изначально на странице (или в отдельном окошке) появлялось предупреждение: "Страница загружается. Ждите", а после полной загрузки чтобы оно исчезало?
Спасибо!
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2012, 15:52
Ответы с готовыми решениями:

Как сделать поэтапную загрузку "тяжелой" страницы?
У меня есть страница, которая показывает около 6000 записей из базы данных. Она долго очень грузится. Нет ли способа, чтобы загрузить и...

Медленная загрузка страниц на некоторых клиентах
Доброго времени суток ! Собственно есть сайт as.net 4.0 - Windows authentication На некоторых клиентах работает нормально, а...

HTTPHandler: загрузка страницы, а фото с этой страницы загружать с локальной папки
нужен HTTPHandler который загружал страницу а фотки из этой странице загружалась с локальной папки (ну типа подмена ImagURL ) которые были...

5
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
22.05.2012, 11:56
Ничего сложного, особенно если все важное содержимое расположено внутри <form runat="server

Добавляем к тегу форму атрибут style="display:none"
HTML5
1
2
3
<form runat="server" style="display:none">
...
</form>
В нужном месте документа размещаем контейнер с сообщением "идет загрузка". Только не внутри тега <form runat="server !
HTML5
1
<div id="loading Please wait!</div>
И добавляем JavaScript обработчик события window.load
JavaScript
1
2
3
4
5
6
<script type="text/javascript">
window.onload = function() {
    document.getElementById("loading").style.display = "none";
    document.forms[0].style.display = "block";
}
</script>
Вот и все

Этот код написан исходя их предположения, что серверная форма одна на странице или идет первой. Но при желании это поведение можно легко модифицировать. Кроме того никто не мешает по событию window.onload показать несколько блоков на странице.
0
evgenybe
22.05.2012, 12:34
window.onload - не срабатывает! Я добавил туда alert("jhgfjhgf ") - он не появляется.
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
22.05.2012, 12:40
Скорее всего в других местах обработчик onload был назначен. Например, в теге <body>.
0
evgenybe
22.05.2012, 12:49
Да. Был в теге <body..
Но он мне там нужен. Что делать?
Я попробовал так:
JavaScript
1
2
3
4
5
6
window.onload = fWait();
function fWait() {
       document.all("loading").style.display = "none";
       document.Form1.style.display="block";
       //document.forms[0].style.display = 
}
Теперь функция срабатывает, но ругается что document.all("loading") не существует.
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
22.05.2012, 13:14
Цитата Сообщение от evgenybe
Да. Был в теге <body..
Но он мне там нужен. Что делать?
Сделай отдельную функцию для отображения текста страницы после окончания загрузки и добавь ее вызов в атрибут onload.

function loadComplete()
{
document.getElementById("loading").style .display = "none";
document.forms["Form1"].style.display = "block";
}
...
<body onload="...; loadComplete()"

Цитата Сообщение от evgenybe
Я попробовал так:
window.onload = fWait();
function fWait() {
document.all("loading").style.display = "none";
document.Form1.style.display="block";
//document.forms[0].style.display =
}
Теперь функция срабатывает, но ругается что document.all("loading") не
существует.
Здесь несколько ошибок. Во-первых, ты пытаешься присвоить обработчику события window.onload результат выполнения функции fWait(). Причем эта функция выполняется не после окончания загрузки документа, а как только браузер дойдет до этого места в коде. Поэтому элемент с id=loading не обнаруживается, его просто еще не существует. В моем примере обработчику window.onload присваивался [italic]объект функции[/italic] и поэтому все работало. Во-вторых, не надо пользоваться коллекцией document.all. Она морально устарела и поддерживается только MSIE. В данном конкретном случае лучше использовать document.getElementById.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2012, 13:14
Помогаю со студенческими работами здесь

загрузка страницы
можно ли средствами ASP загрузить нужную страницу? К примеру для IE версии выше 6 загружается http://www.ya.ru для...

Загрузка страницы с яваскриптами
Всем доброго времени суток. У меня возникла такая проблема, пытаюсь скачать страницу по адресу: http://cyberry.ru/100620/100679/101694 ...

Загрузка html-страницы
Возможно в c# скачать html страницу, без использования запроса, создания файла и вставки в него содержимого запроса?

Постепенная загрузка страницы
Есть страница с картинками, подгружаемыми из базы, грузятся по 4 штуки в ряд . Подскажите пожалуйста как реализовать постепенную загрузку...

Загрузка страницы в div
Здравствуйте! Я только начинаю учить АСП.Нет. У меня такой вопрос: Есть два div'a , например div menu и div content. В div menu...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru