如何使我的upvote / downvote按钮存储cookie并仅计票1次

时间:2016-06-14 12:30:55

标签: javascript html css html5

看看这个https://fiddle.jshell.net/tnvv0dds/4/我为我的网站制作了这个upvote / downvote按钮,但每次刷新网站时它都会重置,每次点击它都会计算投票数。我不知道如何解决它,因为我有点新。有人可以为我提出JavaScript建议吗?我花了3-4天没有成功地搜索它。

2 个答案:

答案 0 :(得分:0)

您可以学习HTML5 Web Storage,并将其与以下代码一起使用。

$(document).ready(function() {
    if(localStorage.getItem("count") == null)
        $("#count").text(0);
    else
        $("#count").text(localStorage.getItem("count"));
});

var counter = 0;
$("#plus").click(function(){
  counter++;
  $("#count").text(counter);
  localStorage.setItem("count", counter);
});

$("#minus").click(function(){
  counter--;    
  $("#count").text(counter);
  localStorage.setItem("count", counter);
});

答案 1 :(得分:0)

如果您希望每个人投一票,您必须保存在服务器上的数据库中投票的人的信息。这是持久计数的唯一方法。当然,显示当前计数涉及查询数据库。将信息保存到数据库中需要使用服务器端编程语言,例如, PHP。 使用纯客户端JavaScript无法做到这一点。

为防止人们进行双重投票,您可以在第一次投票时保存其IP地址,并在数据库中找到当前IP地址时拒绝投票。由于某些人拥有动态/更改的IP地址,因此这不是防弹。另外(实际上,仅作为补充)您可以在本地存储或cookie中保存标志,并在用户尝试投票时检查。在第一次投票时设置标志,如果找到标志,则拒绝投票。