目前我正在开发一个用户通知提醒消息功能。
我设法使用setInterval
控制我的 Ajax 调用(检查是否有用户的通知消息)。但我的问题是我只想要通知消息
在页面上出现一次(现在它在屏幕上显示多个通知警报消息)。我知道你可以使用setTimeout
使它只调用一次,但我还需要该页面检查每 5 分钟是否有新的通知消息警报。
第二个问题是否有可能第一轮立即调用 Ajax 调用,然后每 5 分钟调用所有其他调用?因为我希望系统在他们登录系统后立即检查一次,然后每 5 分钟检查一次。
这是我的代码
function getAjaxNotice() {
$.post("/async/getnotification", {},
function(response) {
var notice = $(response);
$("#notices").prepend(notice);
});
return false;
}
setInterval("getAjaxNotice()", 50000);
首先,您应该将初始化代码包装在 onLoad 函数中:
$(document).ready(function() {
// Put all your code here
});
让它出现一次很容易,使用 .html() 来设置内容而不是添加内容:
$("#notices").html(notice);
第三,作为风格注释,您不应将字符串传递给 setInterval()。相反,传递一个函数名称:
setInterval( getAjaxNotice, 50000 );
最后,要使其立即调用该函数,并每 5 分钟后再次调用该函数,请使用:
// Set the timer
setInterval( getAjaxNotice, 50000 );
// Call it once now
getAjaxNotice();
另请注意,50000 是 50 秒,而不是 5 分钟。 5 分钟就是 5 * 60 * 1000 = 300000。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)