Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вставка картинок в DOM

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Pavelbeginner
Отправлено: 14 Февраля, 2012 - 15:21:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Получаю я html через ajax. В этом html-ле картинки. Мне нужно дождаться пока эти картинки загрузятся и только тогда вставить этот html в DOM документа. Но для того, чтобы начали загружаться картинки, нужно вставить html в DOM документа. Можно ли как-то без вставки html в DOM документа, начать загрузку фоток?
 
 Top
IllusionMH
Отправлено: 14 Февраля, 2012 - 18:23:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Pavelbeginner, перебрать все картинки в получаемом ответе, и сделать массив адресов.
Создать массив объектов типа Image. Для каждого элемента массива назначить обработчик на событие onload, который будет увеличивать счетчик и проверять равно ли кол-во загруженных картинок - длине массива.
Для каждого элемента массива присвоить адрес через атрибут src
Когда значение счетчика равно длине массива с адресами - загрузились все картинки, можно показывать.

Вот тут различные примеры Preloading and the JavaScript Image() object
Тут вариант с массивом адресов и поочередном присвоении одному объекту разных адресов, но при различном размере картинок первые могут загрузится позже последней.

(Отредактировано автором: 14 Февраля, 2012 - 18:27:09)

 
 Top
Pavelbeginner
Отправлено: 14 Февраля, 2012 - 19:58:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




процедура-то понятна. Не понятно другое. Если я создам объект класса img и не вставлю его в дерево DOM, то будет ли идти загрузка фотографии и будет ли срабатывать событие onload?
 
 Top
IllusionMH
Отправлено: 14 Февраля, 2012 - 20:35:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Pavelbeginner, вы меня поражаете вопросами типа: "А заработает?"
Ну ведь проверить - три строчки. Пишется это за 5 минут(сам писал перед тем как писать). Я понял, что требуется дождаться загрузки всех картинок, и если б не работало - не расписывал бы как это сделать, не делал коментарий к ссылке.
А по ссылке есть даже раздел такой The onLoad() event handler. Там даже написан метод в котором можно просто в цикле присваивать все ссылки на изображения одному объекту, чтобы браузер начал грузить (к этому и был комментарий).

(Отредактировано автором: 14 Февраля, 2012 - 21:02:45)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB