Quelle est la différence entre ces deux.
$(document).ready(function(){ ... });
(function(){ ... })();
Ces deux fonctions sont-elles appelées en même temps? Je sais, document.ready sera déclenché lorsque la page HTML entière sera rendue par le navigateur, mais qu'en est-il de la 2ème fonction (fonction anonyme d'auto-appel). Attend-il que le navigateur termine le rendu de la page ou est-il appelé chaque fois qu'il est rencontré?
javascript
jquery
Ashit Vora
la source
la source
$(function() {});
équivaut à$(document).ready(function() {});
Réponses:
$(document).ready(function(){ ... });
ou court$(function(){...});
Cette fonction est appelée lorsque le
DOM is ready
ce qui signifie, vous pouvez commencer à interroger des éléments par exemple..ready()
utilisera différentes manières sur différents navigateurs pour s'assurer que le DOM EST vraiment prêt.(function(){ ... })();
Ce n’est rien d’autre qu’une fonction qui s’appelle dès que possible lorsque le navigateur interprète votre fichier
ecma-/javascript
. Par conséquent, il est très peu probable que vous puissiez agir avec succèsDOM elements
ici.la source
(function(){ ... })();
code JS ne s'exécute-t-il pas dès que possible? Si vous aviez dit, à l'alert()
intérieur du SIAF ou à l'extérieur, l'effet ne serait-il pas le même?(function(){...})();
sera exécuté dès qu'il sera rencontré dans le Javascript.$(document).ready()
sera exécuté une fois le document chargé.$(function(){...});
est un raccourci pour$(document).ready()
et fait exactement la même chose.la source
$(document).ready(function() { ... });
lie simplement cette fonction à l'ready
événement du document, donc, comme vous l'avez dit, lorsque le document se charge, l'événement se déclenche.(function($) { ... })(jQuery);
est en fait une construction de Javascript, et tout ce que fait ce morceau de code est de passer l'jQuery
objet enfunction($)
tant que paramètre et d'exécuter la fonction, donc à l'intérieur de cette fonction, se$
réfère toujours à l'jQuery
objet. Cela peut aider à résoudre les conflits d'espacement de noms, etc.Donc # 1 est exécuté lorsque le document est chargé, tandis que # 2 est exécuté immédiatement, avec l'
jQuery
objet nommé$
en raccourci.la source
Le code suivant sera exécuté lorsque le DOM (modèle d'objet de document) est prêt pour l'exécution du code JavaScript.
Le raccourci pour le code ci-dessus est:
Le code ci-dessous est une fonction JavaScript anonyme auto-appelante, et sera exécutée dès que le navigateur l'interprétera:
La fonction auto-appelante jQuery illustrée ci-dessous transmet l'objet jQuery global en tant qu'argument à
function($)
. Cela permet$
d'être utilisé localement dans la fonction auto-appelante sans avoir besoin de parcourir la portée globale d'une définition. jQuery n'est pas la seule bibliothèque à utiliser$
, ce qui réduit les conflits de noms potentiels.la source
document.ready exécuté après la "construction" du DOM. Les fonctions auto-appelantes s'exécutent instantanément - si elles sont insérées dans
<head>
, avant la construction du DOM.la source
<head>
, et les règles ne sont pas différentes une fois que le DOM initial a été construit.