我在网页上的每个帖子下都有一个“LIKE”按钮。当用户单击“LIKE”按钮时,它会通过 AJAX 将 GET 请求发送到 like.php 页面,该页面将一行插入 mysql 数据库表。用户点击 LIKE 按钮后,LIKE 按钮消失。
我想确保用户点击“LIKE”按钮之间应该有 3 秒的延迟。我的意思是,如果用户单击帖子上的“LIKE”按钮并立即单击第二个帖子上的 LIKE 按钮,并且如果此时间少于 3 秒,则应该拒绝 LIKE 按钮过程。
现在,问题是我应该把这张支票放在哪里,在客户端还是在服务器端。如果一个服务器端,我想到了一个解决方案。
我想把这段代码放到like.php页面
if(isset($_SESSION["last_like_time"]))
{
$last_like_time = $_SESSION["last_like_time"];
$time_diff = time()-$last_like_time;
if($time_diff<3)
{
die("ERROR: You must wait at least " . (3 - $time_diff) . " seconds to Like another Post");
}
$_SESSION["last_like_time"] = time();
}
else
{
$_SESSION["last_like_time"] = time();
}
我的问题是,这是检查服务器端时差的有效方法吗?如果不是哪个是最好的方法?
我的第二个问题,如何在不去服务器端的情况下在客户端执行此操作?