event-loopjQuery的deferredPromise的基本使用和原理async/await(和Promise的区别、联系)JS解决异步的方案单线程,只有一个线程,只能做一件事
原因,避免DOM渲染的冲突
DOMJS可以修改DOM结构JS执行的时候,浏览器DOM渲染会暂停JS代码不能同时执行(都修改DOM会产生冲突)webworker支持多线程,但是不能访问DOM解决方案,异步
实现方式,event-loop
setTimeout
console.log(100);
setTimeout(function () {
console.log(200);
}, 1000);
console.log(300);
console.log(400);
ajax
console.log(100);
$.ajax({
url: 'url',
success: function (result) { //ajax加载完才执行
console.log(result); //先不执行,让其他JS代码先运行
}
});
console.log(300);
console.log(400);
问题
callback中不容易模块化