同步加载和异步加载

515 阅读1分钟
讲到的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

ask.csdn.net/questions/3…