问题:
//methods.init(); //这样调用init方法,两个alert都会弹出,但中间的代码不起作用,求解释!
$(function() { methods.init(); });//这样调用中间代码就起作用了。
HTML代码:
<select id="DDL_Country"></select>JS代码: (function() {
var a = $("#DDL_Country"),
b = $("#DDL_Province"),
c = $("#DDL_City"),
data = { 1: { n: "中国" }, 2: { n: "美国"} }; var methods = {
init: function() {
alert('这里测试弹出');
var aaa = '';
$.each(data, function(i, item) {
aaa += "<option>" + item.n + "</option>";
});
$("#DDL_Country").html(aaa);
alert('这里都弹出了,中间的还没执行?');
}
};
//methods.init(); //这样调用init方法,两个alert都会弹出,但中间的代码不起作用,求解释!
$(function() { methods.init(); });//这样调用中间代码就起作用了。
})();
不会等DOM加载完毕后再去执行?
(function(){})(); 是立即执行。
$(function() { methods.init(); });是jquery的语法
大多浏览器使用单一进程来处理用户界面(ui)更新和js脚本执行。js执行越长时间,浏览器等待响应的时间也越长。
<script>很霸道 每次出现都让页面等待 .无论<script>是内嵌的,还是外链文件(src),页面的下载和渲染都要停下来,等待脚本执行完成。
一个例子:document.write();可能会改变html结构。页面不等待的话 渲染的可能会出问题。------《高性能Javascript》第一章