|
|
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Вот видел множество сайтов кода страничка загружается в момент загрузки "Ждите загружаетя!" и програссбар! Как так можно сделать или где взять-Скриптом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2008, 20:20 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Ну, теория тут простая - скрытые элементы, которые показываются после полной загрузки. Особенно это касается картинок и заполняемых элементов (для img есть событие onload). Остальное уже можно додумать. Но (ИМХО) это привилегия флеш-сайтов. Там это имеет смысл, так как флеш занимает все пространство и мы не можем наблюдать за заполнением страницы - раз, зачастую внутренности флешки удобнее и безопаснее подгружать динамически - два и флеш имеет встроенные инструменты для загрузки и отображения прогрессбара - это три. А для DHTML это все же, наверное, неправильно из соображения политкорректности: при открытии странички я вижу элемент для ввода и начинаю в него вводить (переходить, выбирать, нажимать) и мне как пользователю обычно все равно, подгрузилась ли та или иная картинка или другой декоративный элемент. А их объем на странице может быть подавляющим ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2008, 20:56 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Такой прогрессбар - обманка. Настоящий прогресс - реализован в окне браузера. Если прогрессбар врет - это рано или поздно проявится в том, что пользователь будет ждать загрузки и любоваться прогрессбаром - а на деле никакой загрузки не будет. И в следующий раз такой прогрессбар будет только раздражать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2008, 21:36 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
"Ждите" реализуется довольно просто. При отправке запроса на сервер, сначала отображается скрытый элемент, вроде div'а (докучи, центрируется), а в завершении ответа сервер формирует жабаскрип, который гасит этот div. Актуально может быть, при динамической подгрузке больших списков в select, например. Выдирать из какого то движка возможно будет сложней, чем написать с нуля. При использовании AJAX управление довольно простое. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2008, 22:32 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Кстати, gmail честно оторразил малиновый ДИВ Загружается... и никаких прогрессбаров. У меня с медленным соединением "загружается" частенько бывает что не загружается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2008, 22:47 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Если используется не "чистый" html (например как у нас CSP), после отсылки запроса на сервер, страница "становится в режим ожидания" (это образно ) и по Код: plaintext ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 08:52 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
IDVsbruckНу, теория тут простая - скрытые элементы, которые показываются после полной загрузки. Особенно это касается картинок и заполняемых элементов (для img есть событие onload). Остальное уже можно додумать. Но (ИМХО) это привилегия флеш-сайтов. Там это имеет смысл, так как флеш занимает все пространство и мы не можем наблюдать за заполнением страницы - раз, зачастую внутренности флешки удобнее и безопаснее подгружать динамически - два и флеш имеет встроенные инструменты для загрузки и отображения прогрессбара - это три. А для DHTML это все же, наверное, неправильно из соображения политкорректности: при открытии странички я вижу элемент для ввода и начинаю в него вводить (переходить, выбирать, нажимать) и мне как пользователю обычно все равно, подгрузилась ли та или иная картинка или другой декоративный элемент. А их объем на странице может быть подавляющим ... apapacy Такой прогрессбар - обманка. Настоящий прогресс - реализован в окне браузера. Если прогрессбар врет - это рано или поздно проявится в том, что пользователь будет ждать загрузки и любоваться прогрессбаром - а на деле никакой загрузки не будет. И в следующий раз такой прогрессбар будет только раздражать. Прогресс не обязателен! хотелось бы примерчик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 09:53 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
DJШкетхотелось бы примерчик Как вариант, сделай видимым этот рисунок... А потом убери. Чем не прогресс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 10:38 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
оставим прогресс в покое. Воть есть хтмл с полным набором(Скрипты,имеджи-и всё как после мясорубки) и Надо сделать в момент загрузки "Жди загружается!"! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 14:32 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 14:55 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Чего-то так и не понял конкретного вопроса: надо сделать, чтобы можно было отслеживать моменты загрузки или само сообщение "загружается"? Со вторым вроде должно быть все понятно - свою страницу всю туши (все видимые элементы не должны быть видимыми), а див на переднем плане показывает надпись ... С первым теоретически сложнее. Принцип можно рассмотреть на следующем примере: есть 4 элемента-картинки (все остальное, в принципе, не имеет значения, так как практически не имеет объема, а следовательно, и нельзя отследить загрузку, остаются только картинки). Допустим, это хидер (200 Кб), левая картинка (100 Кб), правая (100 Кб) и подвал (200 Кб). Сразу в скрипте можно прописать, что все элементы невидимы - разместить картинки в дивах, а дивы сделать невидимыми. На картинки повесить события onload с вызовом функции и передавать в качестве параметра инкремент к загрузке: общий объем у нас 600 Кб (100%), соответственно, картинки "весят" 33.33%, 16.67%, 16.67%, 33.33% (все рассчитывается исключительно вручную - мы всегда знаем, чем заполняем страницу). Когда картинка заканчивает загружаться, она передает параметр загрузки, который мы и выводим в диве сообщения, расположенный перед страницей. При окончательной загрузке выводим "Все загрузилось", тушим наше сообщение и делаем видимыми дивы с картинками. Вот и весь сценарий ... Естественно, есть много деталей, но суть такова ... Если посмотреть на описание событие onload, то видно, что его использовать можно только с тремя элементами: img, embed и applet. Также есть такое событие у body, которое overrides (забыл по-русски) событие у элементов. Но эти "нюансы" уже надо читать в описании. Что же касается подгружаемых елементов, например, списков, то тут, с одной стороны, достаточно просто, так как мы знаем количество передаваемых элементов с сервера, но с другой стороны, сделать обычным прямым способом невозможно: а) пока AJAX будет получать массив с сервера, невозможно ничего отследить; б) пока массив будет парситься (JSON, XML, стринг с разделителями), система и вовсе подвисает. Конечно, вариант есть: запрос на сервер - получаем количество элементов, инициируем прогрессбар и начинаем получать элементы по одному и обновлять его, параллельно заполняя список. Скажу сразу, что это полная глупость, так как замедляет работу в добрый десяток раз! Приведу пример из своей практики: запрос на заполнение списка городов - когда получаешь несколько тысяч городов, то комп подвисает на несколько десятков секунд, причем, даже анимированный гиф, который показывает, что идет загрузка, тоже подвисает и не двигается. У меня очень-очень мощный компьютер, неплохая сеть, но когда я получаю 8 тысяч городов штата Нью-Йорк, то комп подвисает на 48 секунд! По-твоему, кто-то захотел бы ждать 5-8 минут и смотреть на прогресс-бар? - Не думаю. Поэтому считаю, что данная идея достаточно тупиковая и не стоит на ней зацикливаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 17:28 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Antonariy Код: plaintext 1. 2. 3. 4. 5. 6. 7. Опробуем! IDVsbruck Чего-то так и не понял конкретного вопроса: надо сделать, чтобы можно было отслеживать моменты загрузки или само сообщение "загружается"? Со вторым вроде должно быть все понятно - свою страницу всю туши (все видимые элементы не должны быть видимыми), а див на переднем плане показывает надпись ... С первым теоретически сложнее. Принцип можно рассмотреть на следующем примере: есть 4 элемента-картинки (все остальное, в принципе, не имеет значения, так как практически не имеет объема, а следовательно, и нельзя отследить загрузку, остаются только картинки). Допустим, это хидер (200 Кб), левая картинка (100 Кб), правая (100 Кб) и подвал (200 Кб). Сразу в скрипте можно прописать, что все элементы невидимы - разместить картинки в дивах, а дивы сделать невидимыми. На картинки повесить события onload с вызовом функции и передавать в качестве параметра инкремент к загрузке: общий объем у нас 600 Кб (100%), соответственно, картинки "весят" 33.33%, 16.67%, 16.67%, 33.33% (все рассчитывается исключительно вручную - мы всегда знаем, чем заполняем страницу). Когда картинка заканчивает загружаться, она передает параметр загрузки, который мы и выводим в диве сообщения, расположенный перед страницей. При окончательной загрузке выводим "Все загрузилось", тушим наше сообщение и делаем видимыми дивы с картинками. Вот и весь сценарий ... Естественно, есть много деталей, но суть такова ... Если посмотреть на описание событие onload, то видно, что его использовать можно только с тремя элементами: img, embed и applet. Также есть такое событие у body, которое overrides (забыл по-русски) событие у элементов. Но эти "нюансы" уже надо читать в описании. Что же касается подгружаемых елементов, например, списков, то тут, с одной стороны, достаточно просто, так как мы знаем количество передаваемых элементов с сервера, но с другой стороны, сделать обычным прямым способом невозможно: а) пока AJAX будет получать массив с сервера, невозможно ничего отследить; б) пока массив будет парситься (JSON, XML, стринг с разделителями), система и вовсе подвисает. Конечно, вариант есть: запрос на сервер - получаем количество элементов, инициируем прогрессбар и начинаем получать элементы по одному и обновлять его, параллельно заполняя список. Скажу сразу, что это полная глупость, так как замедляет работу в добрый десяток раз! Приведу пример из своей практики: запрос на заполнение списка городов - когда получаешь несколько тысяч городов, то комп подвисает на несколько десятков секунд, причем, даже анимированный гиф, который показывает, что идет загрузка, тоже подвисает и не двигается. У меня очень-очень мощный компьютер, неплохая сеть, но когда я получаю 8 тысяч городов штата Нью-Йорк, то комп подвисает на 48 секунд! По-твоему, кто-то захотел бы ждать 5-8 минут и смотреть на прогресс-бар? - Не думаю. Поэтому считаю, что данная идея достаточно тупиковая и не стоит на ней зацикливаться. на этом! авторПрогресс не обязателен! Всем спасибо! о результатах сообшу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 18:01 |
|
||
|
Ждите загружаетя!
|
|||
|---|---|---|---|
|
#18+
Бохладаю-''работает''; Рапорт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 06:29 |
|
||
|
|

start [/forum/topic.php?fid=22&tid=1456755]: |
0ms |
get settings: |
4ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
19ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 271ms |

| 0 / 0 |
