我正在制作一个 PM 系统,我目前正在添加消息星标系统(以便用户可以星标消息)。
问题是,如果用户一直快速地为消息加星标和取消星标(一遍又一遍地单击它),它将弄乱服务器(主机将发出 503 错误,直到进程停止)。要为消息加注星标,只需单击星号即可为其加星标/再次单击以取消加星标。
有没有办法防止它被多次点击,或者在一分钟内点击x次后弹出错误?这将防止它使服务器过载,因为当您单击星号时,它会发送 AJAX 请求并更新数据库;当你取消它的星号时,它会做同样的事情。
如果星号在一分钟左右被点击,是否有 jQuery 显示错误的方法?
这些是我的主演功能:
function addStar(id) {
$('#starimg_' + id).removeClass("not_starred").addClass("starred");
$('#star_' + id).attr({
'title': 'Starred',
'onclick': 'removeStar(' + id + ')'
});
$.get('tools.php?type=addstar', {id: id}, function(data) {
if(data=='true') { // tools.php will echo 'true' if it is successful
alertBox('The message has been starred successfully', 2500);
}
else { alertBox('An error has occurred. Please try again later.'); }
});
}
function removeStar(id) {
$('#starimg_' + id).removeClass("starred").addClass("not_starred");
$('#star_' + id).attr({
'title': 'Not starred',
'onclick': 'addStar(' + id + ')'
});
$.get('tools.php?type=removestar', {id: id}, function(data) {
if(data=='true') { // tools.php will echo 'true' if it is successful
alertBox('The message has been unstarred successfully', 2500);
}
else { alertBox('An error has occurred. Please try again later.'); }
});
}
提前致谢!