[英]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.