![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 8 Всего: 22 |
Ок, только предложу твой код с оптимизацией:
...ну уж больно я люблю компактные решения ... |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
||||
|
||||
| Frantishik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.12.2007 Репутация: нет Всего: нет |
IDVsbruck, спасибо огромное за чёткий код.Вы не правы насчёт заинтересованости....я думаю что многие сталкиваюся с такой проблемой.
да, это действительно именно то решение которое чаще всего нужно, а именно загрузить все картинки до показа самого сайта и к тому же таким образом легко манипулировать загрузкой документа(показом разных div и т.д.). к сожалению я не смог поучаствовать в дисскусии, но решение проблемы сделал аналогичным 1функция создаёт обьекты 2функция проверяет наличие файла в кеше браузера не один из примеров на всём форуме по предзагрузке картинок не работает! обычно в примерах идёт просто создание обьектов-этого мало! так что этот топик можно смело переносить в документацию. Всем СПАСИБО за помощь и проявленный интерес. Я думаю докопались до истины! |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
||||
|
||||
| IDVsbruck |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 8 Всего: 22 |
Чисто техническая помарка - я просто переделывал код Гирика и пропустил ляп. Надеюсь, меня из-за этого не четвертуют ... Добавлено через 53 секунды
А тут что не понравилось? |
||||
|
|||||
| Frantishik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.12.2007 Репутация: нет Всего: нет |
AKS, всё довольно просто:
1.выносим скрипт в конец документа 2.Помещаем контент в div и делаем его невидимым в стиле. 3.В конце обхода массива картинок в функции preload делаем видимым
В этом месте можно вызвать любую функцию и будет гарантия, что на момент её выполнения все картинки из массива уже загружены... |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Да нет, конечно! ;) Ни кто не желает надругаться над Вами за такой ляп. Также, как, к примеру, за такой:
Только не в случае с тем куском кода, который Вы цитируете.
Вы считаете, что к моменту, когда управление покинет цикл for (var i in img_srcs), изображения "гарантировано" будут загружены? Вы ошибаетесь. Кстати, изображения могут вообще не загрузиться... Добавлено через 47 секунд Это по-поводу: "загрузить все картинки до показа самого сайта"... |
||||
|
|||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 8 Всего: 22 |
document.body.appendChild(document.getElementById("img" + i)); - и что нам не нравится? Хотя я считаю, что добавление к боди не нужно, как настаивает мой оппонент, но с точки зрения синтаксиса строка правильная.
Управление покинет цикл практически мгновенно (в нашем человеческом времяисчислении), а картинки когда загрузятся, тогда и загрузятся. По крайней мере код так и работает - или грузим, или они уже есть в кеше. Что-то я не понимаю интонаций АКС ... Хотя могу предположить, что почти каждый из нас в глубине души считает себя гуру Добавлено через 4 минуты и 44 секунды Да, кстати, повторюсь для тех, кто все-таки читает только последний пост и не читает всей темы: помочь на форуме - это не разжевать задачу, а дать идею. Лично я отношусь именно к таким "советчикам". А если кто-то собирается буквально воспринимать все написанное и, к примеру, вставит код типа for (var i = 0 in array) и будет пытаться его юзать, то он либо дилетант либо дурак. |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Откуда возьмется document.getElementById("img" + i), если изображения не были добавлены в структуру документа?
То, что Вы комментируете, было написано для Frantishik'а, который надеялся, что после цикла изображения будут загружены (мне это не надо объяснять). А какие Вы увидели "интонации"? Вижу надпись "код с оптимизацией", смотрю, что это за "оптимизация", пишу, что "оптимизации" на самом деле нет, более того, есть ошибки. Это все - ни больше, ни меньше. Каждому - свое. Это сообщение отредактировал(а) AKS - 31.5.2008, 17:24 |
||||
|
|||||
| Ghirik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
В этом Вы малость ошибаетесь. Давайте разберемся, для кого и что является помощю. Обычно, по первому посту можно сразу оценить уровень знаний вопрошающего. Если он запинается в синтаксисе (таких более 50%), то на кой бес ему ваши советы? А если, нужна идея, то обычно люди так и пишут - "Нужна идея, в каком направлении двинуться?" Вот тут то и нужно включать идейный генератор и измеритель оптимальности... Frantishik,
Это Вы о чем написали?
Работают... прекрасно работают, просто ещё не было функции для балбесов - теперь есть. -------------------- Отдадим всё клиенту, пускай его машина мучается... |
||||||
|
|||||||
| Frantishik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.12.2007 Репутация: нет Всего: нет |
Если бы я считал себя гуру и был мастером высшего класса, разве я обращался бы за помощью.....
И мне интересна не сама идея(я думаю догодаться не сложно,если есть хоть немного логики и знаний в программировании), не код от <html> до </html>, а сама технология работы. Я поблагадарил IDVsbruck, потому что мне его код разьяснил, что помимо создания объекта, его нужно добавить к body. Ghirik, приведите пример с форума, который реально работает. Перед тем как создавать топик, я облазил весь форум, рассмотрел и проработал все примеры(их около 8).... Я занимался системным программированием и мне кажется странным тот факт, что управление покидает цикл практически мгновенно... Тогда что же всё таки загружает картинки и делает эту задержку во время которой и грузятся картинки?.... по поводу балбесов,Ghirik имейте уважение .... если вы считаете мои вопроссы глупыми и отвечаете нехотя, просто пропустите топик..... Это сообщение отредактировал(а) Frantishik - 2.6.2008, 16:09 |
|||
|
||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 8 Всего: 22 |
Событие onload! ... или проверка на уже загруженную картинку. В цикле мы всего-навсего назначаем событие onload для картинки - и все, и это происходит в считанные миллисекунды. А когда картинка загружается, возникает событие onload, интерпретатор идет в обработчик, назначенный нами в цикле и выполняет нужную функцию и нужный скрипт. Теоретически, если повесить многомегабайтовые картинки, то можно просидеть не один десяток минут (ограниченный сессией), пока не сработают обработчики для ВСЕХ картинок. |
|||
|
||||
| Ghirik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Лучше нет способа для понимания технологии, это иметь правильно работающий скрипт оформленный от <html> до </html>. Берите его и изменяйте, вставляйте алерты, смотрите в какие моменты, что происходит. Начинать изучение нужно именно с работающих скриптов. От <html> до </html> имеет очень большое значение для начинающих, т.к., от DOCTYPE зависит работоспособность тех или иных методов JavaScript-а. Можно потратить массу времени, пытаясь разобраться почему не работает скрипт, а потом выяснить, что просто неправильно указан тип документа, и этот метод не работает с таким типом.
Я конечно не буду искать примеры. Зачем? То, что те примеры не заработали у Вас, не означает, что они нерабочие. Есть масса нюансов, которые следует учитывать... Например, Опера не станет загружать изображение на страницу, если оно имеет свойство display:none, для Оперы изображение нужно прогнать через массив. IE и FF - напротив, прекрасно грузят изображение в скрытом виде, но IE игнорирует загрузку в массив и начинает сразу его отдавать на страницу... С контролем события onload изображения, полностью готовой к употреблению функции не было, хотя, обсуждалось неоднократно... А может и была...
Я же не имел Вас ввиду, просто, теперь каждый, кто сделает копи-пасте, задумается... -------------------- Отдадим всё клиенту, пускай его машина мучается... |
||||||
|
|||||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |