接口在5秒之后未返回数据,自动加载百分比

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 接口在5秒之后未返回数据,自动加载百分比,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

   //定义变量
    data(){
        return {
            timeOutObj: {},
            indexTime: 1, //定义时间初始值
            indexTimeInt: {},//定义时间计时器
            process: "0%", //定义进度百分比
            setAdd: {},//定义百分比累加计时器
        }
    }

法一:定时器setInterval实现 

        //开启计时器,只需要在调用接口前开启计时器
        openSetInterVal() {
            var self = this
            self.indexTime = 1 //定义一个初始值,用来计算秒数
            self.indexTimeInt = setInterval(() => { //定义一个计时器,
                if (self.indexTime >= 5) { //如果超过5秒执行,加载框
                    self.loading = true
                    self.indexTime = 1 //并初始化计时值
                    //下面是自动加载百分比,从0-95
                    var num = 1;
                    self.setAdd = setInterval(function () {
                        var len = 95;//显示的最大数值,可以随意设置
                        if (num >= len) { //如果大于95,就关闭计时器
                            clearInterval(self.setAdd)
                            clearInterval(self.indexTimeInt)
                        } else { //否则就加1
                            num += 1;
                        }
                        self.process = num + "%"
                    }, 20)
                } else { //没有超过5秒,就每1秒indexTime加1
                    self.indexTime += 1
                }
            }, 1000)
        },
        // 关闭计时器,在接口成功返回数据时关闭计时器
        closeSetInterval() {
            this.indexTime = 1
            this.loading = false
            clearInterval(this.indexTimeInt)
            clearInterval(this.setAdd)
        },

法二:定时器setTimeout实现

用setTimeout实现,就是直接时间设置为5秒,保存接口返回的response数据,判断是否为空,如果为空,则说明接口响应时间大于5秒,就加载进度条,否则说明反应时间在5秒之内,不作操作。

            var self = this
            setTimeout(() => {
                if (JSON.stringify(self.timeOutObj) == '{}') {
                    self.loading = true
                    var num = 1;
                    self.setAdd = setInterval(function () {
                        var len = 95;//显示的长度
                        if (num >= len) {
                            clearInterval(self.setAdd)
                        } else {
                            num = parseInt(num, 10) + 1;
                        }
                        self.process = num + "%"
                    }, 20)
                }
            },5000)

 下图的关闭定时器是针对法一,保存返回的的response数据是针对法二。

接口在5秒之后未返回数据,自动加载百分比

用的是elementui 的loading加载

接口在5秒之后未返回数据,自动加载百分比  

 注意:这里的百分比是自己造的假数据,模拟进度条。如果需要真实数据,需要后台配合

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/149687.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!