这2天折腾半天,在JS里面setTimeout() 根本不能像sleep那样做到进程等待,他还是先执行下一步,这个功能不知道以前设计出来做什么的,害死了好多开发者,JS的功能确实不行,最近我也转python开发了,不过给想用这个函数功能,苦苦搜索的人一个交待:下面段代码可以实现sleep功能function sleep(millis){var njf1 = njen(this,arguments,"millis");nj:while(1) {try{switch(njf1.cp) { case 0:njf1._notifier=NjsRuntime.createNotifier();setTimeout(njf1._notifier,njf1._millis);njf1.cp = 1;njf1._notifier.wait(njf1);return;case 1:break nj; }} catch(ex) { if(!njf1.except(ex,1)) return; }} njf1.pf();}
很乱,很有用:)www.chnva.com
很乱,很有用:)www.chnva.com
解决方案 »
- JBOSS 关于jsp 中session的清空
- 如何判断链接内容是否有效?链接的内容较大
- js 判断上传的二进制文件大小
- 关于document.location.href的疑问
- 高分请高手们进来解决一个简单的JavaScript页面代码转换为数据绑定问题
- 如何向iframe里的页面传一个参数
- 框架里的页面太宽,想让鼠标在浏览器边上时就自动左(右)移动页面
- 哪位老大有javascript的字符编码表?我想知道一些不可见字符在javascript中的charCode。先行谢过。
- 动态生成javascript问题
- 用无刷新显示,为什么整个页面像死机一样点都点不动
- js中如何替换单个反斜杠
- 到底什么是接口啊?
while(true){
var d1 = new Date();
var i = d1-d;
if(i >10)break;//10秒后跳出循环
}
指定时间内一直执行当前循环
JS,那JS一定会很难用。既然使用JS就要按照JS的方式来
javascript模拟sleep<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>javascript模拟sleep http://www.ok22.org幸凡在线学习,网页设计,技术交流区,在线学习网,免费视频教程</title>
</head>
<body>
<script>
function Pause(obj,iMinSecond){
if (window.eventList==null) window.eventList=new Array();
var ind=-1;
for (var i=0;i<window.eventList.length;i++){
if (window.eventList[i]==null) {
window.eventList[i]=obj;
ind=i;
break;
}
}
if (ind==-1){
ind=window.eventList.length;
window.eventList[ind]=obj;
}
setTimeout("GoOn(" + ind + ")",iMinSecond);
}
//js继续函数
function GoOn(ind){
var obj=window.eventList[ind];
window.eventList[ind]=null;
if (obj.NextStep) obj.NextStep();
else obj();
}
function testJsStop(){ //调用方法。。百试百爽
alert("1");
Pause(this,2000);//2秒钟扣执行nextstep事件。。这样就可以设置下一个方法执行的开始时间
this.NextStep=function(){
alert("2");
}
}
testJsStop();
</script>
</body>
</html>
如果你非要实现的话也不是没有可能,可以通过修改JS的执行换进来实现,比如用C++扩展浏览器
暴露给JS一个sleep函数,这样就可以写出这种代码:
var a = 1;
sleep(1);
alert(a);
我们的上一个项目他们就写了一个这种函数,但因为没有用所以删掉了。因为浏览器是单线程的
UI刷新和JS运行都在一个线程内,你把线程sleep了页面也就不刷新了,所以就会出现页面卡死。
奉劝大家别在这上面浪费时间了,用JS就要用JS的方式来编程
死循环,是最笨的方法,浏览器会报,js 执行很耗时,是否终止?
总结,用工具要用它的长处啊!!!