js基于setTimeout与setInterval实现多线程


Posted in Javascript onJune 17, 2016

本文实例讲述了js基于setTimeout与setInterval实现多线程的方法。分享给大家供大家参考,具体如下:

javascript无法实现线程阻塞(sleep),原因是因为sleep涉及系统调用。js出于安全考虑是不允许系统调用的。

如果一定要实现语句继续执行就只能用while(1)空转的方法消耗CPU,判断到了时间就break。不过这个方法也不是真正sleep。

只执行一次的定时器

<script>
//定时器使用的是异步的方式运行的
function hello(){
  alert("hello");
}
//使用方法名字执行方法
var t1 = window.setTimeout(hello,1000);
var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法
window.clearTimeout(t1);//去掉定时器
</script>

重复执行的定时器

<script>
function hello(){
  alert("hello");
}
//重复执行某个方法
var t1 = window.setInterval(hello,1000);
var t2 = window.setInterval("hello()",3000);
//去掉定时器的方法
window.clearInterval(t1);
</script>

问题:

如果在一个页面中有两个方法都是在页面加载完成之后执行的,但是实际运行的结果不能按照自己想象的先后顺序执行,该如何解决呢?

解决方法:

可以在onload方法中添加一个定时器,设置一个定时器,“延迟”一段时间之后再运行,这样就可以人为区分页面加载运行方法的先后顺序了。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
从javascript语言本身谈项目实战
Dec 27 Javascript
javascript中获取选中对象的类型
Apr 02 Javascript
DOM 基本方法
Jul 18 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
javascript内置对象操作详解
Feb 04 Javascript
jquery实现超简洁的TAB选项卡效果代码
Aug 28 Javascript
web前端开发upload上传头像js示例代码
Oct 22 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
Aug 28 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
简述vue状态管理模式之vuex
Aug 29 Javascript
了解前端理论:rscss和rsjs
May 23 Javascript
详解vue 中 scoped 样式作用域的规则
Sep 14 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
Jun 17 #Javascript
jQuery animate easing使用方法图文详解
Jun 17 #Javascript
JS常用字符串方法(推荐)
Jan 15 #Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 #Javascript
JS模拟的Map类实现方法
Jun 17 #Javascript
jQuery实现iframe父窗体和子窗体的相互调用
Jun 17 #Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
Jun 16 #Javascript
You might like
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
JQuery中getJSON的使用方法
2010/12/13 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
总结js函数相关知识点
2018/02/27 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python对XML文件的操作实现代码
2020/03/27 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
某公司.Net方向面试题
2014/04/24 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
物流经理自我评价
2013/09/23 职场文书
世界红十字日活动总结
2015/02/10 职场文书
个人总结格式范文
2015/03/09 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏