深藏功与名

理解事件队列

这篇文章的原型是来自于JavaScript Tutorial(作者:Ilya Kantor)的其中一小节Events and timing in-depth,不能算是翻译,因为我不会把一整节内容都搬过来,只写关键的事件队列部分。

浏览器中的JavaScript引擎是一种基于事件驱动的单线程模型,无论在什么时候都只且只有一个JavaScript线程在运行程序,事件可以看作是浏览器分发给JavaScript引擎的许多任务,这些任务可以是JavaScript引擎当前执行的代码块,也可以来自浏览器内核的其它线程,比如鼠标点击事件,定时器时间到达通知,异步请求状态变更通知等,JavaScript引擎一直等待着任务队列中任务的到来,由于JavaScript单线程的关系,这些任务必须得排队等着被引擎挨个收拾。

为什么要使用现代浏览器

标题中所提及的 现代浏览器 主要指桌面浏览器也就是PC端所使用的浏览器软件,移动端(手机和平板电脑)所使用的浏览器我们暂且认为其已经属于现代浏览器范畴(虽然也有很多不尽如人意之处,后续文章会详细叙述)所以按下不表。

正文开始前先上几张图和数据,以便大家对国内浏览器占有率有个直观感受,图片和数据均来源于CNZZ

图片1

注:本报表数据自2009年01月开始统计

根据CNZZ数据中心对国内主流浏览器的统计分析,2013年5月,IE浏览器市场份额有所波动。总体上讲,使用率环比4月份呈现增长趋势,使用率从4月份的47.01%增至49.03%,涨幅达到了2.02%,占有率趋势恰好相反,由4月份的46.32%降至45.51%,同4月相比下降了0.81%。IE浏览器中,从使用率来看,IE7、IE8份额与4月份相比有所增长,而IE6、IE9市场份额呈现下降趋势;从占有率来看,IE7呈现增长趋势,而IE6、IE8、IE9份额与4月份相比有所下降。

2013年5月,除IE浏览器以外,其他浏览器市场份额有所波动。从浏览器使用率来看,大部分浏览器与4月份环比都呈现下降趋势,其中360安全、360极速、搜狗浏览器下降幅度较为明显,而Safari、猎豹浏览器依然持续增长趋势;从浏览器占有率来看,Safari、Chrome、猎豹与4月份环比呈现增长趋势,而360安全、360极速、搜狗、傲游、QQ趋势恰好相反,其他浏览器份额变化不大。