我目前正在为我们的员工建立一个主页,该主页将在他们的浏览器中设置为主页。我目前正在建立一个设施,指定的员工可以向所有员工发送通知。这些将在他们的主页上弹出,而无需他们刷新页面。
我目前有下面的代码,它适用于 1 个通知,但一次可能有超过 1 个等待显示。我已经切换到输出 json 但我不确定如何修改我的代码来使用它。
我正在使用 PeriodicalUpdater 和 jGrowl 插件来获得此功能,如果有更好的选择,请随时提出建议。
$.PeriodicalUpdater({
url: 'getNotifications.aspx',
maxTimeout: 6000,
type: 'json'
},
function(data) {
var message = data;
if (message != '') {
$.jGrowl(message, { sticky: true });
}
});
作为一项附加功能,当用户关闭通知以便他们不再看到它时,是否可以将其存储在 cookie 中?
谢谢。
好的,我已经更新了代码,现在是这样;
$(document).ready(function() {
var alreadyGrowled = new Array();
var growlCheckNew = function() {
$.getJSON('getNotifications.aspx', function(data) {
$(data).each(function(entryIndex,entry) {
var newMessage = true;
$(alreadyGrowled).each(function(index,msg_id) {
if (entry['ID'] == msg_id) {
newMessage = false;
}
});
if (newMessage == true) {
$.jGrowl(entry['Message'], {
sticky: true,
header: entry['Title'],
beforeClose: function(e,m) {
alert('About to close this message');
}
});
}
alreadyGrowled.push(entry['ID']);
});
});
}
growlCheckNew();
var msgTimer = setInterval(growlCheckNew, 1000);
});
但是,当我关闭咆哮通知时,我的警报没有触发?!在将一些代码保存到cookie之前,我已经在那里检查它是否有效。这看起来对吗?