Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2009, 15:31
Интересующийся
Отправить личное сообщение для object Посмотреть профиль Найти все сообщения от object
 
Регистрация: 01.04.2008
Сообщений: 13

Прогресс-бар
Помогите, пожалуйста.
Хочу сделать яваскриптовый предзагрузчик, чтобы он отображал процентно (!) процесс загрузки, например, картинки. Ну например открываешь картинку в полный размер (большую картинку, грузится долго), и побежали проценты показывать, сколько байтов картинки уже скачалось.
Уже гуглил, но все предзагрузчики либо просто бегают и исчезают после загрузки, либо предзагрузчики на закачку, то есть отображают прогресс загрузки файла на сервер. А хотелось бы наоборот.
Вот в Экшен скрипте есть простые функции
getBytesTotal(); - узнает общую массу того, что будет загружаться
и getBytesLoaded(); - слушает, сколько уже загрузилось
С их помощью несложно реализовывается то, что я хочу сделать. А есть ли нечто подобное в яваскрипте?
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2009, 15:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от object
А есть ли нечто подобное в яваскрипте?
Нет.
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2009, 15:38
Интересующийся
Отправить личное сообщение для object Посмотреть профиль Найти все сообщения от object
 
Регистрация: 01.04.2008
Сообщений: 13

А я вот нашел вот такую штуку:
var percentage = Math.floor(100 * parseInt(data.bytes_uploaded) / parseInt(data.bytes_total));

Только пока понять не могу, как работает bytes_uploaded
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2009, 15:49
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от object
А я вот нашел вот такую штуку:
Вы забыли рассказать, что такое data.
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2009, 19:04
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

с появление AJAX возможно все даже прогресс загрузки картинки. првда нагрузка на сервер будет выше.

общая схема такая:
1 клиент запрашивает картинку ввиде данных
2. сервер читает картинку из файла и предает ее настраивая кооректно Content-Length
3. при readyState = 3 данные начинают приниматься и responseText заполнятся.
4. периодически проверять responseText и обновлять до readyState=4

Но не все браузеры корректно обновляют responseText и в итоге прогресс может быть скачкообразным.

http://www.ibm.com/developerworks/ru...wa-ajaxintro3/
http://forum.alfaspace.net/9_4008_0.html
Ответить с цитированием
  #6 (permalink)  
Старый 22.12.2009, 19:42
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

PeaceCoder,
а как потом загруженную таким образом картинку отобразить пользователю?
Ответить с цитированием
  #7 (permalink)  
Старый 22.12.2009, 19:47
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Gvozd
а как потом загруженную таким образом картинку отобразить пользователю?
Другими словами, не надо гнать Да и readyState только 4 корректно работает во всех браузерах.
Ответить с цитированием
  #8 (permalink)  
Старый 22.12.2009, 20:18
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Хмм… А зачем вообще нужно показывать прогрессбар для картинки, если ее отображение само по себе показывает прогресс куда лучше?

Вы же не двадцатимегабайтные жпеги подгружаете?

Да, и кстати, а вдруг посетитель сидит через GPRS'ный канал какого-нибудь говнопровайдера (типа МТС) и отключил картинки? А они — представьте! — все равно грузятся, но не показываются, вот шутка-то!
Ответить с цитированием
  #9 (permalink)  
Старый 22.12.2009, 22:10
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от Gvozd
а как потом загруженную таким образом картинку отобразить пользователю?
просто. src = responseText. В респонсе хранится не путь а код картинки

ты когда пишешь <img src="image.php?asdas=234"> как поступает браузер? браузер тоже принимает данные... а указанный путь лишь откуда их брать

не встречал баг, который заключается когда генеришь картинку(например уменьшенную) и в скрипте есть ошибки но не критические которые выводят Notice: ... вместо картинки ты получаешь абракадабру. это и есть данные

еще пример: new Image() - кеширование. думаешь они путь держут в памяти ? нет это данные. а передаешь из как ? правильно: исходник.src = кеш.src

Сообщение от subzey
Да, и кстати, а вдруг посетитель сидит через GPRS'ный канал какого-нибудь говнопровайдера (типа МТС) и отключил картинки? А они — представьте! — все равно грузятся, но не показываются, вот шутка-то!
а вот это хорошее замечание. лично я сделал прогрессбар для общих AJAX запросов... а не для всего подряд.

А вообще приличный сайт имеет версию под моб.браузеры. или минифицированную

а еще подозреваю что этот прогресс нужен для показа большой картинки при клике на маленькую и что бы не ждать когда же она там загрузится и покажется...

Последний раз редактировалось PeaceCoder, 22.12.2009 в 22:19.
Ответить с цитированием
  #10 (permalink)  
Старый 22.12.2009, 22:47
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от PeaceCoder
просто. src = responseText. В респонсе хранится не путь а код картинки

ты когда пишешь <img src="image.php?asdas=234"> как поступает браузер? браузер тоже принимает данные... а указанный путь лишь откуда их брать

не встречал баг, который заключается когда генеришь картинку(например уменьшенную) и в скрипте есть ошибки но не критические которые выводят Notice: ... вместо картинки ты получаешь абракадабру. это и есть данные

еще пример: new Image() - кеширование. думаешь они путь держут в памяти ? нет это данные. а передаешь из как ? правильно: исходник.src = кеш.src
Госпади, что за бред?


Сообщение от PeaceCoder
А вообще приличный сайт имеет версию под моб.браузеры.
Приличный сайт и в ИЕ6 нормально отображается Странный ты человек. Ведь под ИЕ6 сверстать на порядки проще, чем под мобильные браузеры, и процент пользователей на нём больше, тем не менее на ИЕ6 ты предлагаешь забить, а под мобильные браузеры сделать отдельную версию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прогресс бар загрузки страницы bis AJAX и COMET 1 03.08.2009 10:24
прогресс загрузки Лесной_Белк Events/DOM/Window 14 20.05.2009 15:13