Выдаёт иконку уведомления каждую мс

У меня есть функция getNewNotices, которая проверяет, есть ли у человека новые уведомления. На неё задан интервал в 10000 (10 секунд). Это работает исправно. В случае появления нового уведомления эта функция отдаёт пользователю картинку, и значок уведомления начинает мерцать. Загвоздка заключается в том, что это самое изображение отдаётся пользователю каждую мс, его трафик буквально начинает утилизироваться.

window.timer = setInterval(function () {
    getNewTickets(true);
}, 10000);
window.timer = setInterval(function () {
    getNewNotices(true);
}, 10000);

function setFade() {
    if (isHaveNewMessages) {
        $('#supportButton').animate({
            color: "white"
        }, 1000);
        $("#msgImg").fadeTo("slow", 0.5);
        $("#msgImg").fadeTo("slow", 1);
        $('#supportButton').animate({
            color: "#858585"
        }, 1000);
    }
    if (isHaveNewNotice) {
        $('#noticeButton').animate({
            color: "lightgreen"
        }, 1000);
        $("#msgImg").fadeTo("slow", 0.5);
        $("#msgImg").fadeTo("slow", 1);
        $('#noticeButton').animate({
            color: "#858585"
        }, 1000);
    }
}

function getNewNotices(beep) {
    $.getJSON('//{panel_url}/notice/getNewNotices', function (data) {
        if (data.isHaveNewNotice) {
            isHaveNewNotice = true;
            var colTick = data.data.length;
            $("#noticeButton").text("Уведомления (" + colTick + ")");
            if (colTick >= 1) {
                var url = "//{panel_url}/notice";
                $("#notice").text("У Вас есть непрочитанные уведомления (" + colTick + ")");
                $("#noticebutton").attr("href", url);
                $("#noticebutton").css("display", "block");
            } else {
                var url = "//{panel_url}/notice/view/?id=" + data.data[0].notice_id;
                $("#noticebutton").attr("href", url);
                $("#noticebutton").css("display", "block");
            }
            if (beep && {user_newmessagessound} == 1) {
                var audio = new Audio();
                //audio.src = '{template_path}/snd/ticmsg.mp3'; 
                audio.autoplay = true;
            }
        } else {
            //$("#msgImgUrl").css("display","none");
            $("#notice").css("display", "none");
            isHaveNewNotice = false;
        }
    });
}

Каким образом можно поставить интервал на выдачу картинки?

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Пётр Гринов

upd: Проблему решил.

Если кому-то нужно: Цвет менялся через JS на всём noticeButton, вот и отдавалось изображение. Решение проблемы заключалось в том, чтобы задать этот id именно тексту, а не всему блоку.

→ Ссылка