Ответы:
document.readyявляется событием jQuery, оно запускается, когда DOM готов, например, все элементы должны быть найдены / использованы, но не обязательно весь контент .window.onloadСрабатывает позже (или одновременно в худшем / неудачном случае), когда изображения и тому подобное загружаются, поэтому, если вы используете, например, размеры изображения, вам часто нужно использовать это вместо этого.$(window).on('load'). Оба ссылаются на событие загрузки .
it will run on ALL future calls of the function?
$(document).readyкода после того, как DOM будет готов. Это такой маленький случай использования, что, вероятно, не стоит путать всех с упоминанием этого. 2) ОКРУЖАЮЩАЯ СРЕДА только $(document).ready(function(){})один раз, когда DOM готов. Если пользователь по какой-то причине выполняет больше $(document).readyпосле того, как DOM готов, то да, он будет выполнен немедленно.
$(document).ready(function() {
// executes when HTML-Document is loaded and DOM is ready
alert("document is ready");
});
$(window).load(function() {
// executes when complete page is fully loaded, including all frames, objects and images
alert("window is loaded");
});
$(window).load()НЕ доступен в JQuery 3.0
$( window ).load(function() {
// Handler for .load() called.
});
Чтобы обойти это, вы можете использовать его как «Приложение-обработчик событий»
$( window ).on("load", function() {
// Handler for .load() called.
});
Разница:
$(document).ready(function() { является событием jQuery, которое вызывается при загрузке DOM, поэтому оно запускается, когда структура документа готова.
$(window).load() событие запускается после загрузки всего содержимого.
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$( document ).ready(function() {
alert( "document loaded" );
});
$( window ).load(function() {
alert( "window loaded" );
});
</script>
</head>
<body>
<iframe src="http://stackoverflow.com"></iframe>
</body>
</html>
window.load будет запущен после загрузки всего содержимого iframe
$(document).ready происходит, когда все элементы присутствуют в DOM, но не обязательно весь контент.
$(document).ready(function() {
alert("document is ready");
});
window.onloadили $(window).load()происходит после того, как все ресурсы контента (изображения и т. д.) были загружены.
$(window).load(function() {
alert("window is loaded");
});
С точки зрения jquery - это просто добавление load/ onloadсобытие в окно и документ. Проверь это:
document.ready (jQuery) document.ready будет выполняться сразу после того, как свойство HTML-документа загружено, и DOM будет готов.
DOM: объектная модель документа (DOM) - это кроссплатформенное и независимое от языка соглашение для представления и взаимодействия с объектами в документах HTML, XHTML и XML.
$(document).ready(function()
{
// executes when HTML-Document is loaded and DOM is ready
alert("(document).ready was called - document is ready!");
});
window.load (встроенный JavaScript) Window.load, однако, будет ожидать полной загрузки страницы, включая внутренние фреймы, изображения и т. д. * window.load - это встроенный метод JavaScript, который, как известно, имеет некоторые причуды в старых браузерах (IE6, IE8, старых версиях FF и Opera), но, как правило, работают во всех из них.
window.load можно использовать в событии onload тела, как это (но я настоятельно рекомендую вам избегать смешивания кода, подобного этому, в HTML, так как это позже приведет к путанице):
$(window).load(function()
{
// executes when complete page is fully loaded, including all frames, objects and images
alert("(window).load was called - window is loaded!");
});
$ (window) .load - это событие, которое запускается, когда DOM и весь контент (все) на странице полностью загружаются, например, CSS, изображения и фреймы. Один из лучших примеров - если мы хотим получить фактический размер изображения или узнать подробности всего, что мы используем.
$ (document) .ready () указывает, что код в нем должен быть выполнен, как только DOM загружен и готов к работе скриптом. Он не будет ждать загрузки изображений для выполнения сценария jQuery.
<script type = "text/javascript">
//$(window).load was deprecated in 1.8, and removed in jquery 3.0
// $(window).load(function() {
// alert("$(window).load fired");
// });
$(document).ready(function() {
alert("$(document).ready fired");
});
</script>
$ (window) .load запускается после $ (document) .ready ().
$ (window) .load устарела в 1.8 и удалена в jquery 3.0
Я думаю, что $(window).loadсобытие не поддерживается JQuery 3.x
Согласно DOM Level 2 Events, loadсобытие должно быть включено document, а не включено window. Однако loadреализован windowво всех браузерах для обратной совместимости.
$(document).ready(function(){})is$(function(){})и еще одно важное отличие от window.load заключается в том, что он будет работать на ВСЕХ будущих вызовах функции, даже после первоначального DOMready.