讲到的JS就是最常使用同步加载形式:<script src="js/jQuery.js"></script>
同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续的文件加载(如图像)、渲染、代码执行。
js 之所以要同步执行,是因为 js 中可能有输出 document 内容、修改dom、重定向等行为,所以默认同步执行才是安全的。
异步加载又叫非阻塞,浏览器在下载执行 js 同时,还会继续进行后续页面的处理。
$.getScript("test.js", function(){
alert("Script loaded and executed.");
});
举一个例子:
$.ajax({
async: false,
type : "post",
url : "haha",
datatype : 'json',
success : function(data) { }
});
alert("执行");
当async属性的值为false时是同步的,Ajax请求将整个浏览器锁死,只有ajax请求返回结果后,才执行ajax后面的alert语句。 当async属性的值为true时是异步的,即不会等待ajax请求返回的结果,会直接执行ajax后面的alert语句。
举个例子:
去改个bug