下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、更快的异步执行(setTimeout多扫瞄器)_ 假如要异步执行一个函数,我们最先想到的方法确定会是setTimeout 例如:setTimeout(function( /* 1s后做点什么 */),1000 那假如说要最快速地异步执行一个函数呢? 是否会是: 1 setTimeout(function( /* 尽快做点什么 */),0 可惜的是,扫瞄器为了避开setTimeout嵌套可能消失卡死ui线程的状况,为setTimeout设置了最小的执行时间间隔,不同扫瞄器的最小执行时间间隔都不一样。chrome下测试 setTimeout 0 的实际执行时间间隔也许在12ms左右。 那么假如想最
2、快地异步执行一个函数,有没有什么可以提速的方法呢? 先来看看扫瞄器端,有哪些常用的异步执行方法 setImmediate:该方法去实现比setTimeout 0 更快的异步执行,执行时间更接近0ms,但是只有IE/node支持。 requestAnimationFrame:做动画循环的时候常常会用到这个方法,该方法只会在扫瞄器刷新ui的时候执行,刷新ui的频率最大一般为60fps,所以requestAnimationFrame一般状况下比setTimeout 0 更慢一些。 除了用法异步函数外,还有一些方法可以实现异步调用 利用onmessage: 和iframe通信时经常会用法到onmess
3、age方法,但是假如同一个window postMessage给自身,会怎样呢?其实也相当于异步执行了一个function 例如: 1 var doSth = function() 2 window.addEventListener(message, doSth, true); 3 window.postMessage(, *); 另外,还可以利用script标签,实现函数异步执行,例如: 1 var newScript = document.createElement(script); 2 newScript.onreadystatechange = doSth; 3 document.do
4、cumentElement.appendChild(newScript); 把script添加到文档也会执行onreadystatechange 但是该方法只能在IE下扫瞄器里用法。 那么 这几种方法,谁最快? 测试了一下, chrome下: setImmediate:不行用。 setTimeout 0:12ms onmessage:6ms onreadystatechange:不支持 chrome下,onmessage比setTimeout 0 更快。 firefox下: setImmediate:不行用。 setTimeout 0:7ms onmessage:7ms onreadystat
5、echange:不支持 firefox下,onmessage和setTimeout 0 速度相当。 IE9: setImmediate:不行用。 setTimeout 0:11ms onmessage:7ms 10ms onreadystatechange:2ms IE9下,onreadystatechange的时间比另外两者要快得多。 总体状况下,setImmediate readystatechange onmessage setTimeout 0 requestAnimationFrame 因此我们可以简洁封装一个快速执行异步function的方法: 01 var setZeroTimeout = (function() 02 if(window.setImmediate) 03 /IE10+版本,用法原生setImmediate 04 return window.setImmediate; 05 06 else if(onreadystatechange in document.createElement(script) 07 return function()/* 用法onreadystatechange的版本 */ 08 09 else if(window.postMessage) 10 return function()/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消毒供应中心工作计划及管理目标(范文)
- (2026年)全国硕士研究生考试《307临床医学综合能力(中医)》冲刺试卷
- 机场场道维护员岗前诚信考核试卷含答案
- 机场场务员复试能力考核试卷含答案
- 排土犁司机复测评优考核试卷含答案
- 手风琴零件制作工诚信道德竞赛考核试卷含答案
- 数控插工安全操作竞赛考核试卷含答案
- 复合材质文物修复师岗位应急技能考核试卷含答案
- 附着升降脚手架安装拆卸工岗前班组建设考核试卷含答案
- 金属文物修复师安全技能能力考核试卷含答案
- 小学道德与法治新部编版六年级上册全册知识点(2026秋)
- 2026年秋招:中国建材笔试题及答案
- 自考09462 国际贸易实务(英语)(短句背诵版适配答题)
- 2026矿区微电网白皮书 多源协控 构建绿色矿区韧性微网-阳光电源
- 新苏教版三年级数学上册第七单元《1.数量关系的分析(1)》课件
- 2026年秋大象版(新教材)小学科学五年级上册教学计划及进度表
- 空压机日常巡检记录
- 地铁通风空调竣工验收监理评估报告
- 2026智联招聘笔试题库及答案
- 透析设备维护与管理
- 科研安全管理制度
评论
0/150
提交评论