Дело в том, что в вашем примере используется событие загрузки окна. Если вы хотите иметь счетчик для div, вам нужно будет определить, при каких условиях div «готов», и счетчик должен исчезнуть. Это готово, когда это предоставлено? Готово ли это, когда все ресурсы загружены?
Немного проще было бы просто добавить спиннер к изображениям. Так что дайте ваши теги img в атрибуте sr c, например. spinner.gif и добавьте к тегу атрибут data-sr c.
<img src="spinner.gif" data-src="your-picture-to-be-loaded.jpg">
Затем вы можете начать загрузку изображения с помощью javascript и заменить спиннер загруженным изображением. Для этого вы можете использовать новый объект Image:
var img = document.createElement('img');
$(img).on('load', function() {
imgTag.src = img.src;
});
img.src = data-src-value-of-your-img-tag;
Все это сделано в al oop над всеми тегами img, которые имеют атрибут data-sr c.
Другой подход для вашего DIV-примера было бы загрузить содержимое div через ajax и просто загрузить фиктивное содержимое, например:
<div data-load="/some-html-to-be-rendered.html">
<img src="spinner.gif" alt="loading">
</div>
, а затем заменить содержимое div на загруженный html из ваш атрибут загрузки данных.