87,924
社区成员
发帖
与我相关
我的任务
分享
console.log("a");
sleep(2000);
console.log("b");
sleep(3000);
console.log("c");
var sleep = (function(){
var queue = [],
isFree = true;
return function(fn, delay){
var args = arguments,
self = this;
if(isFree){
isFree = false;
setTimeout(function(){
fn();
isFree = true;
if(queue.length !== 0){
args.callee.apply(self, queue.shift());
}
}, delay);
}else{
queue.push(args);
}
}
})();
console.log('a');
sleep(function(){
console.log('b');
}, 2000);
sleep(function(){
console.log('c');
}, 3000);
var sleep = (function(){
var _delay = 0;
return function(fn, delay){
_delay += delay;
setTimeout(function(){
fn();
_delay = 0;
}, _delay);
}
})();
console.log('a');
sleep(function(){
console.log('b');
}, 2000);
sleep(function(){
console.log('c');
}, 2000);
var sleep = (function(){
var _delay = 0;
return function(fn, delay){
setTimeout(fn, _delay);
_delay += delay;
}
})();
sleep(function(){
console.log('b');
}, 2000);
sleep(function(){
console.log('c');
}, 2000);
<html>
<head><title>ajax</title>
<script type="text/javascript" src="JS/jquery-1.4.2.js"></script>
<script src="JS/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript">
var _Timer =function(){
var _this =this;
this.DelayAdd=0;
this.DelayDo=function(fn,delay){
this.DelayAdd+=delay;
setTimeout((function(fun,Da){
return function(){
fun();
};
})(fn,this.DelayAdd),this.DelayAdd);
};
};
Timer.prototype.TimerId=null;
Timer.prototype.DelayAdd=0;
//
function crossDomain() {
var t=new _Timer();
$("#ShowInfo").html("0");
//========================用法一=================================
var do1 = function(){$("#ShowInfo").html("1");};
t.DelayDo(do1,1000);
//========================用法二=================================
t.DelayDo(function(){$("#ShowInfo").html("2");},1000);
//========================用法二=================================
t.DelayDo(function(){$("#ShowInfo").html("3");},1000);
}
</script>
</head>
<body>
<input type="button" onclick="crossDomain()" value="延时" />
<div id="ShowInfo">-1</div>
</body>
</html>