Программирование > JavaScript & JScript
innerHTML и надпись, которую нужно выводить до окончания загрузки
Egorsha:
Ок. Еще раз о задаче:
--- Цитировать ---Niksen:
1. ...по определенному событию загружаю в DIV картинку с помощью innerHTML...
2. ... выводить надпись в этот DIV, например "Подождите, идет загрузка..." до того момента, пока картинка не подгрузится полностью...
3. ...Вариант делать предзагрузку картинки вместе с остальной страницей и не париться - не подходит...
4. ...(потом уточнил задачу) У меня есть НЕСКОЛЬКо картинок, не одна. Все это пишется в блок...
--- Конец цитаты ---
Тот пример, который привел, все эти 4 пункта учитывает.
К задаче предзагрузки самой картинки приведенный мой код, видимо, имеет такое же отношение, как "задача предзагрузки" к поставленной задаче. (Но мне эти "отношения" как-то не особо интересны.)
CGVictor:
Egorsha
Вот ты же сам и написал всё уже.
Ладно, объясню по-другому: человеку нужно показать текстовую заглушку на время, пока грузится полное изображение.
Зачем аяксом запрашивать кусок html, который все равно потом вызовет загрузку полного изображения с теми же тормозами?
Egorsha:
CGVictor
Видимо эту задачу каждый из нас понимает по разному. Скорее всего из-за того, что один момент в формулировке требует уточнения. А именнно, нужно ли для первичного отображения страницы чтобы эта картинка, или картинки, в DIV отображались сразу. Или отображать их только тогда, когда этого захочет юзер (и инициализирует "определенное событие").
Вот в последнем случае я и предлагал AJAX. Если юзеру не нужно, то ничего не грузится, а если сам захотел, то пусть ждет когда загрузится, а в DIV до окончания загрузки будет висеть текстовая заглушка - "Подождите...". Причем callback-функция в методе onreadystatechange корректно отловит момент окончания загрузки и поменяет "загрушку" на то, что загрузили по HTTP-запросу. Причем в DIV можно загрузить любой HTML код, а не просто одну картинку .
И честно говоря, не понял какие из-за аякса появятся тормоза при загрузке полного изображения? Думаю, наоборот - тормозов будет меньше, так как грузится только то, что нужно юзеру.
Если человеку нужно было показать текстовую заглушку - то она есть в приведенном выше коде - ее делает callback-функция. Прчем она корректно отлавливает момент окончания загрузки.
CGVictor:
Egorsha
--- Цитировать ---Egorsha:
в DIV до окончания загрузки будет висеть текстовая заглушка
--- Конец цитаты ---
В твоем случае в div будет висеть заглушка до окончания работы аякса (который выплевывает html со вставкой img), а потом еще и непонятно что до загрузки самой картинки (напомню, цитируя автора: "картинка большая и грузится долго").
Ему именно вторую часть и надо исправить.
Впрочем, пустопорожние прения тут мне, честно говоря, надоели. Я свое слово сказал, автора - милости прошу.
[off]Всем чмоки в этом чати.[/off]
Egorsha:
Мне тоже надоело эту тему обсуждать, да и автор ,видимо, потерял интерес к этой теме.
Навигация
Перейти к полной версии