Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Узнать загружена ли картинка 
:(
    Опции темы
Master
Дата 8.12.2004, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: нет
Всего: 10



Есть сайт, очень тяжелый. Грузится долго, но таково было желание заказщика.
Так вот, теперь ему не нравица что сайт грузится кусками, т.е графика естественно порезана и загружается все по частям.

Нак вот, можно ли отследить с помощью js загрузку всех картинок на сайте и только потом выдать это все на обозрение? если да, то у кого какое мнение на этот счет?

thxxxx


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
GoodBoy
Дата 8.12.2004, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Тогда, мне кажется, лучше сделать прелоад всех изображений, а потом сразу все их показать...


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Sardar
Дата 8.12.2004, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Посмотри здесь: http://forum.vingrad.ru/index.php?showtopic=30900
У всех элементов есть свойство readyState в ИЕ, у картинок есть свойство complete - во всех браузерах.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Се ля ви
Дата 8.12.2004, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Впринципе, мне кажется, есть более простой вариант - можно всё скрыть, а на событии onload всё показать :-)

Например так:
Код

<body style="display: none;" onload="this.style.display = 'block';">


Единственное, если у тебя много счётчиов, то браузер будет ждать загрузки их всех и это будет долго. Тогда лучше отслеживать через complete.


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Gold Dragon
Дата 8.12.2004, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Как вариант.

Есть такой классный параметр <lowsrc> у <img>, который может помочь. Смысл такой, в <lowsrc> цепляешь картинку очень плохинькую и очень лёгкую, а когда загрузится основная картинка, она сразу поменяется..


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Alx
Дата 8.12.2004, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Red Dragon
это по-моему не ИЕ...


--------------------
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 8.12.2004, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



ALEXANDRO
Я знаю что в спецификации HTML4 нет, но работает, только не помню где


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Sardar
Дата 8.12.2004, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Red Dragon если работает не везде, то смысла использовать нет.
Можно как вариант придумать такую фичу самому, указать картинке src на маленький файл, пусть сразу грузится. Одновременно в скрипте создаются картинки с конечными изображениями. Как только картинка загрузится, она заменяет показанную ранее с низким разрешением.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Alx
Дата 8.12.2004, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Sardar
ой, да ну - это ненужный изврат! лучше уж так сделать:

Код

<style>
img {visibility:hidden;}
</style>
<script>
preloader();
function preloader()
{if (document.readyState == "complete")
{for (var i=0;i<document.images.length;i++)
{document.images[i].style.visibility = "visible";
}
}
else
setTimeout ("preloader()", 500);
}
</script>
<body>
<img src="1.jpg"></img>
</body>



--------------------
PM MAIL WWW ICQ   Вверх
Sardar
Дата 8.12.2004, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



ALEXANDRO но у тебя не показываются картинки пока не загрузятся, разве это хорошо? smile
Код
 preloader.images=[];
function preloader() {
 var imgs=document.getElementsByTagName("IMG");
 preloader.images.length=imgs.length;

 for(var i=0; i<imgs.length; i++) {
   if(!imgs[i].getAttribute("main_image")) continue;
   preloader.images[i]={img: new Image(), prnt: imgs[i]};
   preloader.images[i]img.src=!imgs[i].getAttribute("main_image");
 }
 //поставили на загрузку, проверяем каждую секунду не загрузились ли картинки
 window.setInterval(checkImagesLoaded, 1000);
}
function checkImagesLoaded() {
 for(var i=0; i<preloader.images.length; i++) {
   if(preloader.images[i].img.complete) {
      preloader.images[i].prnt.src=preloader.images[i].img.src;
      preloader.images.splice(i, 1); //удаляем элемент из массива
   }
 }
}


Вот код на скорую руку, не тестил, т.к. на работе под строгим взглядом босса... smile
Под ИЕ5.0 будет ошибка, не существует функции splice у кастрированного массива. Здесь постил реализацию всех необходимых функций для массивов, в поиск с ключь. словом splice smile

Юазем так:
HTML
<body onLoad="preloader()"><!-- А еще лучше поставитьэто в конец страницы -->
<img src="./images/small/быстро_загружаемая_картинка.jpg" main_image="./images/долго_загружаемая_картинка.jpg">
......



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 8.12.2004, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



document.images можно юзать (IE only)

Можно еще прогрес бар сделать, отобр. загрузку изобр. с кеша... код есть (реализация тут: http://aliance.hoha.ru/gallery.html )

Это сообщение отредактировал(а) Aliance - 9.12.2004, 19:51
PM MAIL WWW ICQ Skype   Вверх
Gold Dragon
Дата 8.12.2004, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Народ, я уже что-то подобное спрашивал, только найти не могу и код там рабочий, реализован на region68.russian.ru (раздел "о проекте"-"фото")

Это сообщение отредактировал(а) Red Dragon - 8.12.2004, 21:03


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1284 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.