Задать вопрос

Javascript: body onLoad

Есть простейший html документ в котором всего 1 изображение.
сам документ грузится за 0.1с, изображение 10 с.
body onload вызывается в этом случае через 10с после начала закрузки страницы.
Задача: «ускорить» вызов body onload, при этом желательно в исходном коде страницы должно остаться медленное изображение
Вариант 1: первым делом заменяем src на маленькое изображение. делаем Image объект с большой картинком и как только она загрузилась, вставляем в страничку.
Проблема: в этом случае onload наступает всё равно после загрузки большого изображения

Почему? Что можно сделать?

Заранее спасибо
  • Вопрос задан
  • 15767 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Возьмите любой фреймворк, они все умеют запускать функцию на DOMReady (когда загружен документ, но не загружены внешние ресурсы).

Можно просто вставить скрипт перед закрывающим </body>, эффект примерно тот же.
Ответ написан
zorba_buddha
@zorba_buddha
IT
$(document).ready(frunction(){
$("#target_elem").html("код картинки");
});
Ответ написан
kashey
@kashey
Программирую большую половину жизни
jQuery(function(){
//remove big image
});
jQuery(window).load(function(){
setTimeout(funcition(){
//restore big image \ lazyLoad
}, 1);
// срабатывание гуглевого счетчика… :P
});
Ответ написан
Комментировать
@joger Автор вопроса
похоже, что нельзя предотвратить загрузку элементов из исходного html. даже при удалании элемента, body onload наступает после его загрузки
Ответ написан
nixmale
@nixmale
<script>
var src = 'icon/Abstract XP.jpg';
function test(url)
{
document.getElementById('test').innerHTML = '<img src="'+src+'" width="" height="" alt="" border="0">';
}

</script>
<body onload="alert('body onloaded');test(src);">
<div id="test"></div>
</body>
Ответ написан
pwn
@pwn
$(document).load(frunction(){
//код
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы