|
|
|
Подзагрузка данных
|
|||
|---|---|---|---|
|
#18+
Добрый день. Опишу ситуацию. Есть страничка, на которую динамически подгружается контент: посылаю асинхронные запросы. Чтобы пользователь понимал, что данные грузятся, я отображаю индикатор. После того как данные заносятся на страницу (создаются элементы и прочее), я скрываю индикатор. Примерный код: 1. Получили ответ от сервера 2. Разобрали ответ 3. С помощью DOM разместили элементы 4. Убрали индикатор Проблема в следующем: 3 шаг проходит быстро, но результат не сразу отображается, т.е. индикатор убирается, но только через какой-то промежуток времени появляются новые элементы. Похоже на то, что ИЕ подтормаживает с выводом, т.к. данных много. Собственно вопрос: как сделать, чтобы индикатор убирался только тогда, когда новые элементы подгрузились на страницу? Пытался использовать document.onreadystatechange, но даже ф-я не вызывается, наверное статус не изменился. Что я могу предпринять? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2009, 10:51 |
|
||
|
Подзагрузка данных
|
|||
|---|---|---|---|
|
#18+
Не размещать элементы с помощью ДОМ. Если есть возможность подгрузки контента, то почему не подгружать его в готовом виде? Подгрузил и вставил в контейнер ... Если в подгруженном контенте много скрипта, то сам контент все же уже покажется, а скрипт какое-то время еще может работать. Возможно, не идеальный вариант, но пробелов зато не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2009, 13:14 |
|
||
|
Подзагрузка данных
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, Да это следующая версия будет :) Пока охота хотя бы так сделать, как я выше написал. Идей по улучшению много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2009, 15:40 |
|
||
|
Подзагрузка данных
|
|||
|---|---|---|---|
|
#18+
Да какое же это улучшение? - Это просто процесс ... С сервера на страницу получаешь или части страницы, или данные для использования (списки, неприведенные объекты, массивы, значения). Соответственно, раделяем адреса запросов и организовываем правильную отдачу на сервере. Если получаем контент, то желательно на сервере назначить ему хидеры и корректно обработать на клиенте. Если данные - то и работать как с данными. Скелетные принципы надо закладывать изначально, а не оставлять "на доделку". И очень рекомендую пользоваться асинхронными запросами, реализованными фреймворками. Не стал сильно заморачиваться с разбором кода, но могу сказать уверенно: корректность и скорость получаемого кода возросли с переходом на фреймворк. Об удобстве просто молчу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2009, 16:24 |
|
||
|
Подзагрузка данных
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, Спасибо за диалог. Поясню :) Модуль был написан черт знает когда и сделан коряво. Хочу его полностью переделать с использованием новых технологий, фреймворков и прочего, заложить скелетный принцип. НО, пока я его делаю, хотел бы тот старый модернизировать, чтобы пользователям интерфейс был более юзабильным. Уже внедрил асинхронные запросы на сервер для получения контента. Осталось только визуализировать процесс подгрузки данных. Всё сделал, но наткнулся на описанный выше косяк. Переделаю вопрос: есть ли какое-нибудь событие, которое бы срабатывало, когда начался дополняться DOM новыми элементами, и когда это обновление закончилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2009, 07:24 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=36023851&tid=1454738]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
210ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 564ms |

| 0 / 0 |
