Как узнать, когда закончилась загрузка
На странице меняется разметка (при этом сама страница не меняется)
Соответственно если в разметки присутствуют изображения, то идет запрос на сервер за ними. Разметка в строке! То есть изменение происходит так: var newHTML = "<div><p>..<p><div><img>..</img> и т.п."; element.innerHTML = newHTML; Как узнать когда сервер вернет все запрашиваемые элементы? |
наверно надо написать onload к каждой img
var newHTML = "<div><p>..<p><div><img onload=f()>..</img> и т.п."; и функцию f которая посчитает сколько загружено |
vadim5june,
можно, но разве нельзя это сделать как нибудь проще не изменяя строку? |
Цитата:
Ну повесь на строку replace, пусть он по реге изменит тебе строку. Ну повесь на innerHTML метод, пусть он отпарсит img и привяжет onload к каждому изображению. Ну напиши плагин, который посчитает твои картинки и сообщит, когда все они будут загружены. Я могу ещё проще предложить. Напиши свой браузер с твоим блек-джеком и шлюхами. Пусть он позволяет тебе делать то, что в твоих мозгах придумалось. |
Gozar,
мда)))) все что вы предложили уже прозвучало в ответе vadim5june Это мне не подходит. Я имел в виду какое-нибудь событие которое бы сказало мне что загрузка в данном элементе закончена. Как у ajax Ну нет так нет, буду решать другими способами Клонировать кстати человека можно)) |
как то логику не пойму.
JS дает возможность оперировать данными сохраненными локально, но не предоставляет возможность отследить их загрузку(если она требуется))) и для чего спрашивается придумали storage? Для "name = Вася" и "age = 10"? :) |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Gozar прав, оказывается лоад не всплывает а создатели браузеров криворукие мудилы, сделать тебе костыль для всплывания онлоада?
|
В твоем случае действительно проще сделать
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(){ /*ура*/ } ну а я пока напишу костыль |
да не, не нужно было))) Спасибо)
я уже по другому решил |
как?
|
Цитата:
|
Цитата:
Цитата:
кто то видимо решил что события должны происходить "моментально" а лоады могут происходить "не моментально" по этому это уже не всплывание и делать не надо. Зачем нам удобства.... за то логично же все... сделаем персонально для каждого элемента, и похеру что иерархически все, кому надо те фикс напишут. под всплывать я имею ввиду не-всплывать а когда все элементы внутри какого это элемента окторые могли загрузиться - загрузились, то на нем генерируется событие "лоад" код покажу все станет ясно. |
Atae,
Цитата:
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 потому как, веб страницы становятся все более модульными.. И эти модули могут работать не только с сервером, но и с локальными данными но это ИМХО, не более) |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Просто скорее всего это секретная информация и вряд ли какая-то страна будет распространятся на этот счет))) |
Человека не клонируют, пушо это типа неэтично...
Смотрел вроде какой-то документальный фильм: там говорилось, что во время второй мировой немцы делали попытки клонировать людей - ставили опыты над пленными |
Часовой пояс GMT +3, время: 10:31. |