js的延迟函数self.setInterval()

17 篇文章 0 订阅
17 篇文章 0 订阅

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 window.clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作window.clearInterval() 方法的参数。


例子一:在内部终止
var i = 0;

var interval = self.setInterval(function(){
    if( i<10 ){
        alert(i);
    }else{
        window.clearInterval(interval);
    }
    i++;
},1000);
 

功能:以上方法每隔一秒输出从数字0到9的弹框。

终止:用变量 i 的大小作为条件,if判断符合条件则调用window.clearInterval()来终止setInterval()函数的循环。

因为第一次肯定会走,所以 setInterval() 会产生返回值 interval,在第十次的时候即可以使用 interval 作为window.clearInterval()的参数来终止循环。

例子二:在外部终止

var dots_num = 0;//loading省略号数目

function loading(lastInterval,loadText){
        
    $('#loading').text(loadText);
    if(lastInterval){
        window.clearInterval(lastInterval);
        dots_num = 0;
    }
    
    var interval = self.setInterval(function(){
        switch(dots_num%7){
        case 0:
            $('#loading').text(text+'.');
        break;
        case 1:
            $('#loading').text(text+'..');
        break;
        case 2:
            $('#loading').text(text+'...');
        break;
        case 3:
            $('#loading').text(text+'....');
        break;
        case 4:
            $('#loading').text(text+'.....');
        break;
        case 5:
            $('#loading').text(text+'......');
        break;
        case 6:
            $('#loading').text(text+'');
        break;
        }
        dots_num++;
    },500);
    return interval;
}
    
var interval = loading(null,'正在下载,请稍候');

if(xxxx){//load is over
    window.clearInterval(interval);
}

功能:以上方法实现每隔半秒钟文字后省略号的个数从0递增到6的周期性变化(达到6再从0开始递增),可以呈现动态loading的效果。

终止:在外部以条件判断作为终止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值