javascript线程问题
来源:互联网 发布:mac怎么删除软件快捷键 编辑:程序博客网 时间:2024/05/17 03:28
一、setTimeout和setInterval的延时问题
1.setTimeout和setInterval的区别
setTimeout(function(){console.log("hello")},100)
100ms或者多于100ms之后输出hello,只执行一次。
setTimeout(function(){console.log("hello")},100)
每隔100m或者多于100ms时间输出hello,一直执行下去除非你主动停止或者浏览器刷新。
2.间隔时间的精确度很小,具体的间隔时间取决于你设置的时间和机器的计算速度,如果机器执行其他任务的时间教程,那么可能要很久才能执行回调函数。
3.while(1){setInterval(function(){console.log("hello")},1000)}
永远都不会输出hello,因为js引擎是单线程的,线程在执行while没空执行其他的函数。
二、界面渲染线程和js渲染线程是互斥的。
1.while(1){var oD = document.createElement("div"); document.getElementsByTagName("body")[0].appendChild(oD);}
document.getElementsByTagName("body")[0].appendChild(oD)这句永远都不会执行,因为这个任务要交给渲染线程去做,但是此时js线程正在运行(while)并且js线程和界面渲染线程是互斥的,他们同时只能有一个线程在运行,所以界面渲染线程没机会运行。
0 0
- javascript线程问题
- javascript 的线程问题,收藏
- JavaScript 线程
- JavaScript线程
- javascript线程
- Javascript中的线程以及获取动态Dom元素的问题
- 关于javascript中alert单线程问题以及网页乱码问题之一
- 线程问题
- 线程问题
- 线程问题
- 线程问题
- 线程问题
- 线程问题
- 线程问题
- 线程问题
- 线程问题
- 线程问题
- 线程问题
- cmd中的mysql指令
- 杭电---2068 RPG的错排
- Android Studio离线配置
- ios多线程之GCD(Grand Central Dispatch)
- 两年的程序员感悟
- javascript线程问题
- java实现线程同步一个生产者和一个消费者
- Android中SQLite开发详解(四)SQLiteOpenHelper 类和SQLiteDatabase类介绍
- ARM Linux 3.x的设备树(Device Tree)
- 获取中国天气网天气预报json数据的api接口
- 理解inode
- 数据挖掘--相关系数计算
- iOS开发的22个常用技巧
- 使用weka的select attribute