Подтвердить что ты не робот

Обнаруживать, когда HTML закончил загрузку и рендеринг на странице

Можно ли обнаружить, когда HTML закончил загрузку и рендеринг на странице? Если да, то как?

Страница состоит из HTML, звонков в ajax, получения данных обратно из ajax-вызовов, большого количества файлов javascript и некоторых изображений. Я хотел бы узнать, когда все закончится. То, что я не могу сделать, это придерживаться вызова функции в конце, потому что я не знаю, когда заканчивается.

Например, на странице есть множество элементов стиля ajax, которые пользователи могут выбирать и выбирать, то есть пользователь 1 может иметь различное количество элементов, кроме пользователя 2 и даже в другом порядке.

Так что я не могу сделать, это использовать последнюю функцию для имитации конца HTML-рендеринга, потому что я не буду знать, какая функция будет последней функцией.

4b9b3361

Ответ 1

Проблема с ответом на ваш вопрос заключается в последних предложениях, в которых вы говорите, что не знаете, где конец из-за выбора пользователя. Есть два автоматических события, к которым вы можете привязать JavaScript. Что jQuery вызывает $(document).ready(), что означает, что DOM готов к манипуляции (до загрузки изображений и после загрузки внешних скриптов и CSS), и что обычно называется body onload (в jQuery это можно записать как $(window).load()), который запускается после получения всех статических активов. Ваши вызовы Ajax будут запускаться после того, как по крайней мере DOM будет готов, и нет определенного события для того, что произойдет после всех из них. Для этого вам нужно отслеживать их самостоятельно. Вы можете использовать подход "последний конь из сарая". Добавьте небольшой бит логики в конец ваших вызовов Ajax, чтобы узнать, является ли это последним и поднять пользовательское событие под названием "reallyAllDone"

Ответ 2

Да onload

<body onload="load()">

Это обнаружит, когда загружено содержимое тела.

Ответ 3

$(документ).ready

поможет вам узнать, когда дом завершил свое мероприятие и его готовность