Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Как узнать, когда закончилась загрузка (https://javascript.ru/forum/offtopic/33642-kak-uznat-kogda-zakonchilas-zagruzka.html)

Atae 01.12.2012 03:16

Gozar прав, оказывается лоад не всплывает а создатели браузеров криворукие мудилы, сделать тебе костыль для всплывания онлоада?

Atae 01.12.2012 03:22

В твоем случае действительно проще сделать

elem.innetHTML = 'картинки';

var imgs = elem.querySelectorAll('img');
var i = 0; 

[].each.call(imgs, function(img){
    img.onload = function(){ if( ++i === imgs.length ) allImgLoad.call(elem) }
});


function allImgLoad(){ /*ура*/ }



ну а я пока напишу костыль

dmitry111 01.12.2012 04:19

да не, не нужно было))) Спасибо)

я уже по другому решил

Atae 01.12.2012 06:28

как?

nerv_ 01.12.2012 12:05

Цитата:

Сообщение от Atae
оказывается лоад не всплывает

с чего это оно должен всплывать? :) При такой логике событие readystatechange объекта XMLHttpRequest должно всплывать.

Atae 01.12.2012 12:23

Цитата:

Сообщение от nerv_
с чего это оно должен всплывать?

с того что события должны всплывать

Цитата:

Сообщение от nerv_
При такой логике событие readystatechange объекта XMLHttpRequest должно всплывать.

нет по такой логике только события которые могут всплывать должны всплывать у XMLHttpRequest нет родителя чтобы всплывать, по этому оно не может всплывать и по моей логике не всплывает.)

кто то видимо решил что события должны происходить "моментально" а лоады могут происходить "не моментально" по этому это уже не всплывание и делать не надо. Зачем нам удобства.... за то логично же все... сделаем персонально для каждого элемента, и похеру что иерархически все, кому надо те фикс напишут.

под всплывать я имею ввиду не-всплывать а когда все элементы внутри какого это элемента окторые могли загрузиться - загрузились, то на нем генерируется событие "лоад" код покажу все станет ясно.

dmitry111 01.12.2012 16:57

Atae,
Цитата:

Сообщение от Atae
как?

ну не ссовсем подругому.. просто повесил onload не на все картинки на странице, а на те которые вставляются. И вместо строки с элементами стал перебирать массив с адресами картинок:


for (i = 0, len = arrIMG.length; i < len; i += 1) {
    img = document.createElement("img");
    img.src = arrIMG[i];
    img.alt = arrIMG[i];
    img.className = "img";
    frag.appendChild(img);
}

img.onload = function () {
};



Хотя так не хотел это делать.. Было бы офигенно если бы было событие которое предоставляло информацию о загрузках в конкретном элементе
Что-то вроде
elem.onload

потому как, веб страницы становятся все более модульными.. И эти модули могут работать не только с сервером, но и с локальными данными


но это ИМХО, не более)

Gozar 01.12.2012 17:08

Цитата:

Сообщение от Atae
с того что события должны всплывать

Нет, спасибо.

Цитата:

Сообщение от Atae
Зачем нам удобства

Ага, давайте придумаем себе ещё геморроя. Чур меня чурача, чтобы onload-ы начали всплывать.

nerv_ 03.12.2012 23:08

Цитата:

Сообщение от Gozar
Нельзя клонировать человека.

пока нельзя :)

dmitry111 03.12.2012 23:27

Цитата:

Сообщение от nerv_
пока нельзя

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

Просто скорее всего это секретная информация и вряд ли какая-то страна будет распространятся на этот счет)))


Часовой пояс GMT +3, время: 11:48.