我有一个upvote按钮,用户可以按该按钮,并且将会注册一个投票。再次单击此按钮,将取消投票。
因此,每次按此按钮都将执行数据库写操作。如果在此按钮上连续使用自动点击器,则会发生连续的数据库调用。我想防止这种情况。
我能做什么?
PS。单击upvote按钮时,我正在向后端(运行Django)发送ajax查询。
最佳答案
您确实想在服务器上检查此内容,因此,如果有人禁用了javascript都没关系。
如果您使用的是PHP,则一个选项是设置投票之间的时间限制。例如,每分钟只允许投票一次。
因此,在每次投票中,将投票时间存储在 session 变量中,如果在时间限制内,则忽略后续投票:
//on vote
$now=date('U');
if(!isset($_SESSION['lastvote']) || $now - $_SESSION['lastvote']<LIMIT){
$_SESSION['lastvote']=$now;
// do database call
}else{
//throw error
}