Odpowiedzi:
document.readyjest zdarzeniem jQuery, uruchamia się, gdy DOM jest gotowy, np. wszystkie elementy można znaleźć / wykorzystać, ale niekoniecznie całą zawartość .window.onloadodpala później (lub w tym samym czasie w najgorszych / nieudanych przypadkach), gdy obrazy są ładowane, więc jeśli na przykład używasz wymiarów obrazu, często chcesz tego użyć.$(window).on('load'). Oba odwołują się do zdarzenia ładowania .
it will run on ALL future calls of the function?
$(document).readykodu, gdy DOM jest gotowy. Jest to tak mały przypadek użycia, że prawdopodobnie nie warto było mylić wszystkich ze wspomnianiem o nim. 2) ŚRODOWISKO wywołuje tylko $(document).ready(function(){})raz, gdy DOM jest gotowy. Jeśli z jakiegoś powodu użytkownik wykona więcej $(document).readypo DOM, to tak, zostanie on natychmiast wykonany.
$(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()Nie jest dostępna w jQuery 3.0
$( window ).load(function() {
// Handler for .load() called.
});
Aby go obejść, możesz użyć go jako „załącznika obsługi zdarzeń”
$( window ).on("load", function() {
// Handler for .load() called.
});
Różnica polega na:
$(document).ready(function() { to zdarzenie jQuery, które jest uruchamiane po załadowaniu DOM, więc jest uruchamiane, gdy struktura dokumentu jest gotowa.
$(window).load() zdarzenie jest uruchamiane po załadowaniu całej treści.
<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 zostanie uruchomiony po załadowaniu całej zawartości elementu iframe
$(document).ready dzieje się, gdy wszystkie elementy są obecne w DOM, ale niekoniecznie cała zawartość.
$(document).ready(function() {
alert("document is ready");
});
window.onloadlub $(window).load()dzieje się po załadowaniu wszystkich zasobów treści (obrazów itp.).
$(window).load(function() {
alert("window is loaded");
});
Z perspektywy jquery - po prostu dodaje load/ onloadevent do okna i dokumentu. Sprawdź to:
document.ready (jQuery) document.ready zostanie wykonany zaraz po załadowaniu właściwości dokumentu HTML, a DOM jest gotowy.
DOM: Document Object Model (DOM) to wieloplatformowa i niezależna od języka konwencja do reprezentowania i interakcji z obiektami w dokumentach HTML, XHTML i XML.
$(document).ready(function()
{
// executes when HTML-Document is loaded and DOM is ready
alert("(document).ready was called - document is ready!");
});
window.load (wbudowany JavaScript) Window.load będzie jednak czekał na pełne załadowanie strony, w tym ramki wewnętrzne, obrazy itp. * window.load to wbudowana metoda JavaScript, wiadomo, że ma pewne dziwactwa w starych przeglądarkach (IE6, IE8, stare wersje FF i Opera), ale ogólnie będą działać we wszystkich.
window.load może być użyty w zdarzeniu onload ciała w ten sposób (ale zdecydowanie sugeruję unikanie mieszania takiego kodu w HTML, ponieważ jest to później źródło nieporozumień):
$(window).load(function()
{
// executes when complete page is fully loaded, including all frames, objects and images
alert("(window).load was called - window is loaded!");
});
$ (okno) .load to zdarzenie, które jest uruchamiane, gdy DOM i cała zawartość (wszystko) na stronie jest w pełni załadowana, jak CSS, obrazy i ramki. Jednym z najlepszych przykładów jest to, czy chcemy uzyskać rzeczywisty rozmiar obrazu lub uzyskać szczegółowe informacje na temat tego, czego używamy.
$ (document) .ready () wskazuje, że kod w nim musi zostać wykonany po załadowaniu DOM i przygotowaniu go do manipulowania przez skrypt. Nie będzie czekać na załadowanie obrazów do wykonania skryptu 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>
$ (okno) .load wystrzelił po $ (dokument) .ready ().
$ (okno) .load został przestarzały w wersji 1.8 i usunięty w jquery 3.0
Myślę, że $(window).loadwydarzenie nie jest obsługiwane przez JQuery 3.x
Zgodnie ze zdarzeniami DOM poziomu 2 wydarzenie loadma się uruchamiać document, a nie włączać window. Jednak loadjest zaimplementowany windowwe wszystkich przeglądarkach w celu zapewnienia kompatybilności wstecznej.
$(document).ready(function(){})jest$(function(){})i kolejna ważna różnica w stosunku do window.load jest to, że będzie on działać na WSZYSTKICH przyszłych wywołaniach funkcji, nawet po początkowym DOMready.