这段代码:
<script type="text/javascript">
someMethod1();
$(function () {
someMethod2();
});
</script>
这两个调用有什么区别?我们什么时候打第一个电话,什么时候打第二个电话?方法执行的顺序是什么?
这段代码:
<script type="text/javascript">
someMethod1();
$(function () {
someMethod2();
});
</script>
这两个调用有什么区别?我们什么时候打第一个电话,什么时候打第二个电话?方法执行的顺序是什么?
someMethod1();
这可能在文档准备好之前或之后调用,它不需要 jQuery。如果这是在页面的末尾,它将在所有控件都准备好时调用,但如果它在中间,那么它将只知道已呈现的控件。
$(function () {
someMethod2();
});
这总是在文档准备好并且所有控件都准备好/渲染后调用。这需要 jQuery。您可以在此处阅读有关准备好的更多信息。这也将帮助您了解其他函数调用。
someMethod1 立即执行
someMethod2 在执行代码之前等待整个页面加载,包括外部 javascript 文件(其他脚本,或来自其他站点)、CSS 和其他资源。
$(function () {
//run after page loads
});
Method2 有时以以下形式出现
$(document).ready(function() {
// Handler for .ready() called.
});
欲了解更多信息:http ://api.jquery.com/ready/
脚本块中的语句按照它们出现的顺序执行。如果我们对行进行编号并插入一个或两个额外的换行符以便于讨论:
1 someMethod1();
2
3 $(
4 function () {
5 someMethod2();
6 }
7 );
第 1 行,someMethod1()
首先执行。
然后$()
执行第 3 行,其中参数 to$()
是在第 4 到 6 行定义的匿名函数。该$()
函数安排该匿名函数稍后执行以响应文档就绪事件。也就是那个时候匿名函数没有被执行。
最后,当文档准备好时,执行第 4 到第 6 行的匿名函数,这意味着第 5 行someMethod2()
出现。