форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / The Matrix Has You / Индикатор прогресса загрузки для AJAX |
| Автор | Сообщение |
| persei Участник 475 |
# Дата: 21 Июл 2006 04:01 Народ помогите плз. Как сделать чтобы во время загрузки ajax контента показывался прогресс бар (в процентах). Типа как на pro.mail.ru Очень хочу сделать у себя такое |
| Андрей Алексеевич 2125 |
# Дата: 21 Июл 2006 05:06 Нужно чтоб: 1) Сервер отдавал правильную шапку, в частности правильный «Content-Length». Её можно посчитать через «ob_» и «strlen». 2) Принять полный размер через метод XHLHttpRequest'а, называемый getResponseHeader(header), указав в качестве header толи Content-Length, толи Length (не помню точно). 3) Смотреть, если readyState равен «1» (т.е loading), то дальше два варианта: Смотреть на status, т.к возможно там выводится кол-во загруженных байт. Смотреть на responseText и считать кол-во символов (responseText.length ). 4) Теперь соответственно делить кол-во всего размера, на кол-во загруженного, и считать процент. |
| persei Участник 475 |
# Дата: 21 Июл 2006 05:31 Андрей Сенкс, счаз попробуем реализовать... Кстати полный размер получать можно не только через заголовок. У меня работает gzip и размер через буферинг ставится в куку... |
| persei Участник 475 |
# Дата: 21 Июл 2006 07:25 Андрей Еще раз сенкс. Сделал. смотрим на exmp.alfamoon.com Тестировал в firefox 1.5 и ie6. рабочий код в exmp.alfamoon.com/common/site.js |
| persei Участник 475 |
# Дата: 21 Июл 2006 07:25 Пока просто проценты, но сделаю красиво типа прогресс бара... |
| Андрей Алексеевич 2125 |
# Дата: 21 Июл 2006 08:50 Тебе повезло, что у тебя получилось. Я сказал почти наугад. ![]() |
| persei Участник 475 |
# Дата: 21 Июл 2006 09:23 Андрей
» Андрей 3) Смотреть, если readyState равен «1» (т.е loading)Не 1 а 3. |
| Андрей Алексеевич 2125 |
# Дата: 21 Июл 2006 10:52XMLHttpRequest readyState values: 0 - Uninitiated, 1 - Loading, 2 - Loaded, 3 - Interactive, 4 - Complete. Извини, я перепутал загрузку класса, и загрузку контента (процессинг). ![]() |
| persei Участник 475 |
# Дата: 21 Июл 2006 12:41 Освоение Ajax, часть 3: Усовершенствованные запросы и ответы в Ajax
Брэт Маклафлин, автор и редактор, O'Reilly Media Inc. * 0: Запрос не инициализирован (перед вызовом open()).
* 1: Запрос инициализирован, но не был передан (перед вызовом send()). * 2: Запрос был передан и обрабатывается (на данном этапе вы можете обычно получить заголовки содержимого из ответа). * 3: Запрос обрабатывается; часто в ответе доступны некоторые частичные данные, но сервер не закончил свой ответ. * 4: Ответ завершен; вы можете получить ответ сервера и использовать его. |
| acsid Alfa Guru 2388 |
# Дата: 21 Июл 2006 15:12 persei убого смотриться) я его даже в начале незаметил вообще.. |
| persei Участник 475 |
# Дата: 22 Июл 2006 01:28 acsid Это пока так... Тестовая версия... Я ищу алгоритм по-лучше. Если в xmlhttprequest возвращал количество полученных байт то было бы гораздо лучше. просто на маленьких текстах получено пара байт, а парсинг текста выполнять рано - прогресс - 0%... |
| acsid Alfa Guru 2388 |
# Дата: 22 Июл 2006 01:32 ° Поправил: acsid persei засунь весь саит кроме шапки в див, при загрузке в этом диве сделай лоадинг бар, когда скрипты всё загрузять, аяксом помести в этот див оставшуюся половину загруженного саита, эфeкт круче получиться) |
| persei Участник 475 |
# Дата: 22 Июл 2006 08:05 нуууууууууу.... ![]() |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:29992, gzipped size:8996 |