繁体   English   中英

运行部分功能一次,但每5秒运行其余功能

[英]Run part of function once, but run rest of function every 5 seconds

我有一个检查服务器连接状态的功能。 我想每5秒运行一次checkOnline。 如果连接丢失,并且连接仍然失败,则淡入错误消息也将继续运行(创建闪烁效果)。 我该如何更改它,以便淡入淡出功能在失败时仅运行一次,但仍会继续检查连接。

$(function () {

var url = 'https://examplesite.com/';

function checkOnline() {
    $.get(url).done(function () {
        window.location = url;
    }).fail(function () {
        $('.errortext').hide().fadeIn(500);
        $('.loadingtext').fadeOut(500);
    });
};

window.setInterval(function () { checkOnline(); }, 5000);
setTimeout(function () { checkOnline(); }, 2000);

});

跟踪是否已经运行了淡入淡出效果。 然后在运行淡入淡出之前对其进行检查。 这是一个使用名为fadeFlag的变量的示例:

var fadeFlag = false;

function fadeOnce() {
    // Has fade happened already?
    if (fadeFlag === false) {
        // No. Then do the effects
        $('.errortext').hide().fadeIn(500);
        $('.loadingtext').fadeOut();
        fadeFlag = true;
    }
}

function checkOnline() {
    $.get(url).done(function () {
        window.location = url;
    }).fail(function () {
        // Try the fade effects
        fadeOnce();
    });
};

第一次fadeOnce() ,它将运行效果,然后将fadeFlag设置为true 下次,它将看到fadeFlagtrue ,因此它什么也不做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM