Подсчет веб-страницы полностью загруженных элементов в JavaScript - PullRequest
2 голосов
/ 08 апреля 2009

Есть ли способ узнать, сколько элементов будет загружено на веб-страницу с помощью javascript?
например, я собираюсь показать посетителю что-то вроде этого:

загружено 3 объекта, осталось 10! пожалуйста подождите.

1 Ответ

5 голосов
/ 08 апреля 2009

Если под «элементами» вы подразумеваете элементы DOM, то нет. Вы не знаете, что они существуют, пока они не загружены, и не очень надежно пытаться делать запросы DOM до того, как он все равно загрузится.

Если вы имеете в виду «изображения» или что-то в этом роде, вы можете разместить что-то вроде этого на своей странице:

<div id="loadingMessageContainer"></div>

И поместите это внизу страницы (ниже </body>)

<script type="text/javascript">
var imageCount = 0;
var imagesLoaded = 0;

//a function to execute when each image is loaded ("event handler")
function handleImageLoad() {
    imagesLoaded++;
    updateImageDisplay();
}

//a function which updates your message in the page
function updateImageDisplay() {
    var displayContainer = document.getElementById('loadingMessageContainer');
    var remaining = imageCount - imagesLoaded;
    displayContainer.innerHTML = imagesLoaded + ' objects loaded, ' + remaining + ' remain. Please wait.';
}

//get # of images on page and attach the OnLoad event handler
var images = document.getElementsByTagName('img');
imageCount = images.length;
for(var i=0;i<images.length;i++) {
    images[i].onload = handleImageLoad;
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...