首页 新闻 赞助 找找看

js、jquery实现请求超过2秒就出现“请稍候”

0
悬赏园豆:10 [已解决问题] 解决于 2016-06-15 11:35

有这样一个业务,每当客户端发起一个请求,判断是否超过2秒,如果超过,则出现“请稍候”,如果没超过,就不出现“请稍候”。请各位大牛给点思路

李子深的主页 李子深 | 初学一级 | 园豆:137
提问于:2016-06-15 09:54
< >
分享
最佳答案
1
var timeout;
$(document).ajaxStart(function () {
    timeout = setTimeout(顯示請稍候, 2000)
}).ajaxComplete(function () {
    if (timeout) {
        clearTimeout(tineout);
    }
    清除請稍候
});

大致上這樣

收获园豆:10
RosonJ | 老鸟四级 |园豆:4910 | 2016-06-15 10:47

谢谢你的代码,现在有个问题:请求超过5秒的话,“请稍候”会刷新,体验不好,这样应该怎么办呢?

李子深 | 园豆:137 (初学一级) | 2016-06-15 11:21

@李子深: 

請稍候會刷新?setTimeout只會執行一次怎麼會刷新

RosonJ | 园豆:4910 (老鸟四级) | 2016-06-15 11:23

@RosonJ: 不好意思,你的代码是对的

李子深 | 园豆:137 (初学一级) | 2016-06-15 11:33
其他回答(2)
0

发起请求的时候setInterval 2秒调用显示代码, 请求完成后clearInterval,如果到时间没clearInterval,自然就调用显示代码。

我只是搬运工 | 园豆:308 (菜鸟二级) | 2016-06-15 10:02

你好,我对js不太熟,你可不可以给个代码

支持(0) 反对(0) 李子深 | 园豆:137 (初学一级) | 2016-06-15 10:16

@李子深: 

HTML

<div id="loading" style="display: none;">请稍后...</div>

JS

    function somerequest(parameters) {
        //生成定时器,2秒后执行
        var sh = setInterval(showLoading, 2000);
        $.ajax({
            type: 'post',
            url: 'url',
            data: {},
            success: function (data) {
                //请求完成清除定时器
                clearInterval(sh);
                hideLoading();
            },
            error: function () {
                //请求出错清除定时器
                clearInterval(sh);
                hideLoading();
            }
        });
    }
    //显示请稍后
    function showLoading() {
        $("#loading").fadeIn();
    }
    //隐藏请稍后
    function hideLoading() {
        $("#loading").fadeOut();
    }
支持(0) 反对(0) 我只是搬运工 | 园豆:308 (菜鸟二级) | 2016-06-15 10:46

@大头说: 谢谢你的代码,现在有个问题:请求超过5秒的话,“请稍候”会刷新,体验不好,这样应该怎么办呢?

支持(0) 反对(0) 李子深 | 园豆:137 (初学一级) | 2016-06-15 11:21

@李子深: 你好,已经解决,setInterval要换成setTimeout

支持(0) 反对(0) 李子深 | 园豆:137 (初学一级) | 2016-06-15 11:33
0

一般很难或者不推荐判断是否2秒,话题太长就不展开讨论了。

建议的做法是,在有超过1或者2秒可能行的操作按钮,显示正在....请稍候,

执行完毕关闭“正在...”窗口。

爱编程的大叔 | 园豆:30839 (高人七级) | 2016-06-15 10:57

因为我要在原来框架上修改,所以没办法使用你这种方式

支持(0) 反对(0) 李子深 | 园豆:137 (初学一级) | 2016-06-15 11:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册