Je fais un système de MP, et j'ajoute actuellement le système vedette du message (de sorte que l'utilisateur peut afficher des messages en étoile). Le problème est que si l'utilisateur garde un message très rapidement en train d'afficher et de déconnecter un message (en cliquant dessus encore et encore), il dérangera le serveur (l'hôte mettra une erreur 503 jusqu'à ce que les processus s'arrêtent). Pour démarrer un message, il suffit de cliquer sur l'étoile pour l'activer/cliquer de nouveau pour la désapparaître.Comment puis-je limiter le nombre de clics sur un élément dans une minute?
est-il un moyen de l'empêcher d'être cliqué beaucoup, ou plutôt faire une erreur pop-up après avoir cliqué est x nombre de fois dans une minute? Cela l'empêcherait de surcharger le serveur car lorsque vous cliquez sur l'étoile, il envoie une requête AJAX et met à jour la base de données; quand vous le désengagez, ça fait la même chose.
Existe-t-il un moyen jQuery d'afficher une erreur si l'utilisateur a cliqué sur l'étoile au bout d'une minute environ?
Ce sont mes fonctions pour la vedette:
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.'); }
});
}
Merci à l'avance!
http://stackoverflow.com/questions/5031501/how-to-rate-limit-ajax-requests – SuitedSloth
vous pouvez aussi utiliser ceci: http://stackoverflow.com/questions/7804312/remy- sharps-function-throttler – SuitedSloth
@juand: merci. – Nathan