私はPMシステムを作成しており、現在メッセージスターシステムを追加しています(ユーザーがメッセージにスターを付けることができるようにするため)。
問題は、ユーザーがメッセージのスターを付けたりスターを外したりするのが非常に速い場合(メッセージを何度もクリックする)、サーバーを台無しにすることです(プロセスが停止するまでホストは503エラーを出します)。メッセージにスターを付けるには、スターをクリックしてスターを付けるか、もう一度クリックしてスターを外すだけです。
何度もクリックされないようにする方法はありますか、それとも1分間にx回クリックした後にエラーがポップアップするようにする方法はありますか?スターをクリックするとAJAXリクエストが送信され、データベースが更新されるため、サーバーが過負荷になるのを防ぐことができます。スターを外すと、同じことをします。
星が1分ほど以内にクリックされた場合にエラーを表示する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.'); }
});
}
前もって感謝します!