前言
相信大家在一开始用angular
做项目的时候,一定碰到过$scope.$apply()
方法,表面上看,这像是一个帮助你进行数据更新的方法,那么,它为何存在,我们又该如何使用它呢?
JavaScript执行顺序
JavaScript
单线程操作,代码按照代码片段的顺序来之行,每个代码块从运行到结束都不会被打断,这也是为什么会发生浏览器阻塞的情况,往往是有一部分在运行,而导致其他所有的代码段冻结。
每当有耗费时间较多的任务出现,例如等待一个click
事件,等待Ajax
请求的回应,我们都会设定一个回调函数,当click
事件被触发或者计时器完成,就会创建一个新的JavaScript turn
,并执行完回调函数。如果还不清楚js
的运行机制,可以前往js运行机制这篇文章,可能会有更多的帮助。
var button = document.getElementById('clickMe');
function buttonClicked () {
alert('the button was clicked');
}
button.addEventListener('click', buttonClicked);
function timerComplete () {
alert('timer complete');
}
setTimeout(time