Выдаёт иконку уведомления каждую мс
У меня есть функция 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 именно тексту, а не всему блоку.
