powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / дождаться загрузки страницы
11 сообщений из 11, страница 1 из 1
дождаться загрузки страницы
    #36586548
SoloPedro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перерыл Интернет на наличие такового ответа и читаю ахинею.
Поэтому я сюда за верным ответом!

Нужно : дождаться загрузки страницы с картинками.

Знаю : window и body имеют onload ,
но window.onload и document.body.onload срабатывают до загрузки изображений

Знаю : У img тоже есть onload , но тогда как правильно записать сработать при загрузке 100 картинок.
т.е. схематично
Код: plaintext
1.
2.
3.
4.
5.
если загружена /img/s1 то 
если загружена /img/s2 то 
если загружена /img/s3 то 
...
если загружена /img/s100 то финиш!

или предложите другой ответ.
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36586611
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoloPedro,

объявите переменную var imgCL = 0;
В обработчике загрузки картинки инкрементируйте.
Когда дойдет до 100 (или сколько нужно) - выполняйте действия.
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36586619
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoloPedro...но window.onload и document.body.onload срабатывают до загрузки изображений...
Да ну! Не верю. ©
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36586632
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, Серж, так оно и есть. window.onload срабатывает не после загрузки всего контента, а после загрузки страницы и формирования ДОМа. При этом картинки могут и не успеть полностью загрузиться (в ДОМ прописана, область под нее освободилась, а ее еще нет).

SoloPedro, тебе нужно именно револьверно грузить картинки или определить момент загрузки последней (скажем, сотой картинки)? В первом случае это сравнительно долгий процесс загрузки относительно второго.
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36586680
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
но window.onload срабатывают до загрузки изображений


Вы только об этом никому не говорите :)
Особенно создателям jquery, те как узнают повесяцца
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36586828
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм...
Насчет window.onload и вправду что-то неверно. Оно срабатывает после загрузки всего.
Иначе нафига свистопляска с этим ?
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36586843
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В дополнение - http://webo.in/articles/habrahabr/05-delayed-loading/
Хочу на основе этих статей как-нибудь сделать аналог jqueryвского
Код: plaintext
1.
$(document).ready(function() { });
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36587402
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно не придумывать колесо, а просто взять кроссбраузерный обработчик у того же jQuery (см. функцию bindReady):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
bindReady: function() {
	if ( readyBound ) return;
	readyBound = true;
	// Catch cases where $(document).ready() is called after the browser event has already occurred.
	if ( document.readyState === "complete" ) return jQuery.ready();
	// Mozilla, Opera and webkit nightlies currently support this event
	if ( document.addEventListener ) {
		// Use the handy event callback
		document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
		// A fallback to window.onload, that will always work
		window.addEventListener( "load", jQuery.ready, false );
	// If IE event model is used
	} else if ( document.attachEvent ) {
		// ensure firing before onload, maybe late but safe also for iframes
		document.attachEvent("onreadystatechange", DOMContentLoaded);
		// A fallback to window.onload, that will always work
		window.attachEvent( "onload", jQuery.ready );
		// If IE and not a frame continually check to see if the document is ready
		var toplevel = false;
		try {
			toplevel = window.frameElement == null;
		} catch(e) {}
		if ( document.documentElement.doScroll && toplevel ) {
			doScrollCheck();
		}
	}
}
"jQuery.load" - как раз и есть функция-обработчик события. Остальное(-ые) также можно посмотреть в коде.
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36588706
SoloPedro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruck, дождаться загрузки всех.
Поможете с кодом?
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36589120
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Нужно: дождаться загрузки страницы с картинками.

Код: plaintext
1.
window.onload
...
Рейтинг: 0 / 0
дождаться загрузки страницы
    #36589987
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoloPedroIDVsbruck, дождаться загрузки всех.
Поможете с кодом?
Как-то делал такую загрузку. Правда, заданием было не дождаться окончания загрузки картинок, а отображать прогресс загрузки страницы. Пренебрегаем объемом и временем загрузки самой страницы и скриптов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
$.post($("#site_address").attr("value")+"/state",{"action":"get_pictures_info"},function(data){
	var files_data = eval("(" + data + ")");
	full_size = parseInt(files_data.full_size);
	$("#shadow_win").html($("#shadow_win").html() + "Statistics of loading (total " + full_size + " bytes):<br>");
	for (var i =  0 , file; file = files_data.files[i]; i++) {
		images[i] = new Image();
		images[i].src = "images/" + file.name;
		images[i].name = file.size;
		if (images[i].readyState != "complete") images[i].onload = function() {setLoadedStatus(this.src, this.name);};
		else setLoadedStatus(images[i].src, images[i].name);
	}
});
function setLoadedStatus(src, size){
	loaded_size += parseInt(size);
	var current_per = Math.round(loaded_size* 100 /full_size) + "%";
	$("#procents").html(current_per);
	$("#shadow_win").html($("#shadow_win").html() + "<br>" + src + " - " + size + " " + script_terms.bytes + " - " + current_per);
	if (loaded_size == full_size) {
		...
	}
}

Описание. Делаем запрос на сервер чтобы узнать данные о файлах: files_data.full_size - общее количество, files_data.files - имена. Грузим все и отображаем прогресс-бар (статистику загрузки). Важным моментом есть то, что если контент кешируется и картинка уже была загружена, то назначение ей обработчика onload не приведет к его вызову, поэтому надо проверять статус картинки - readyState на "complete". После такой загрузки все картинки берутся из кеша и быстро отображаются.

Возможно, это не то, что в полной мере нужно, но кое-что можно из кода вынести.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / дождаться загрузки страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]