В чем разница между этими двумя.
$(document).ready(function(){ ... });
(function(){ ... })();
Обе эти функции вызываются одновременно? Я знаю, что document.ready будет запускаться, когда вся HTML-страница отображается браузером, но как насчет второй функции (самовызов анонимной функции). Ожидает ли браузер завершения рендеринга страницы или вызывается при каждом обнаружении?
javascript
jquery
Ашит Вора
источник
источник
$(function() {});
эквивалентно$(document).ready(function() {});
Ответы:
$(document).ready(function(){ ... });
или коротко$(function(){...});
Эта функция вызывается, когда, например
DOM is ready
, вы можете начать запрашивать элементы..ready()
будет использовать разные способы в разных браузерах, чтобы убедиться, что DOM действительно готов.(function(){ ... })();
Это не что иное, как функция, которая вызывает себя как можно скорее, когда браузер интерпретирует ваш
ecma-/javascript
. Поэтому маловероятно, что вы сможете здесь успешно действоватьDOM elements
.источник
(function(){ ... })();
разве какой-либо код JS не запускается как можно скорее? Если бы вы сказали,alert()
внутри SIAF или вне его, разве эффект не был бы таким же?(function(){...})();
будет выполнен, как только он будет обнаружен в Javascript.$(document).ready()
будет выполняться после загрузки документа.$(function(){...});
является ярлыком$(document).ready()
и делает то же самое.источник
$(document).ready(function() { ... });
просто связывает эту функцию сready
событием документа, поэтому, как вы сказали, когда документ загружается, событие запускается.(function($) { ... })(jQuery);
на самом деле является конструкцией Javascript, и весь этот фрагмент кода передаетjQuery
объект вfunction($)
качестве параметра и запускает функцию, поэтому внутри этой функции$
всегда имеется ссылка наjQuery
объект. Это может помочь разрешить конфликты пространств имен и т. Д.Итак, №1 выполняется при загрузке документа, а №2 запускается немедленно, с
jQuery
объектом, названным$
как сокращение.источник
Следующий код будет выполнен, когда DOM (объектная модель документа) будет готова для выполнения кода JavaScript.
$(document).ready(function(){ // Write code here });
Краткое обозначение приведенного выше кода:
$(function(){ // write code here });
Код, показанный ниже, представляет собой самозапускающуюся анонимную функцию JavaScript и будет выполнен, как только браузер ее интерпретирует:
(function(){ //write code here })(); // It is the parenthesis here that call the function.
Показанная ниже функция самозапуска jQuery передает глобальный объект jQuery в качестве аргумента в
function($)
. Это позволяет$
использовать его локально внутри самозапускающейся функции без необходимости пересекать глобальную область видимости для определения. jQuery - не единственная библиотека, которая используется$
, поэтому это снижает потенциальные конфликты имен.(function($){ //some code })(jQuery);
источник
document.ready запускается после "построения" DOM. Самозапускающиеся функции запускаются мгновенно - если они вставлены
<head>
, до создания DOM.источник
<head>
, и правила не отличаются после того, как начальная DOM была построена.