[英]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
。 下次,它将看到fadeFlag
为true
,因此它什么也不做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.