视频投票之每日一票-jquery.cookie.js篇

本文介绍了一个投票系统的实现方案,重点解决了用户每日只能对特定类型的视频投一票的需求。通过使用jQuery.cookie.js来设置cookie,实现了对用户投票行为的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:不论是游客还是评委进入系统,每日只能对两类视频中的一个视频进行一次投票(点赞)

解决过程:

听到最后这个需求的时候,我就想,甲方是不是把这个系统当作了微信公众号的那些投票,我这是赤果果的 web 系统啊,和那些微信公众号能相提并论吗?不能。

一开始我的切入点是,获取那些访问用户的 ip,并记录保存。然后在数据库进行数据过期删除操作。

然而,难度在于1.在自己本地不能进行多用户访问获取 ip 的操作;2.mongo 数据库是可以设置过期时间自动删除列数据,但有局限且我自己尝试并没有成功

后来,明白了要从 cookie 入手的,只有这样才能做到设置 cookie 存在的时间为一天,以及投票行为的保留

jquery.cookie.js 为一把利器,度娘搜一下,前辈们的教学都很清楚。

我这里应用的是,当点击投票按钮之后,设置唯一的 cookie,只要再次点击任何投票按钮之后,判断这个唯一的 cookie 是否为空即可。

{% for v in video1 %}
                $("#zan-{{ v.id }}").click(function () {
                    if ( $.cookie("grade1") != null){
                        alert('今日已投票,请退出');
                    }
                    else {
                        if (this.name == "iconfont zan") {
                            this.innerHTML = "<i class='iconfont unzan'></i>";
                            this.name = "iconfont unzan";

                            var likes = {{ v.like_num }} +1;
                            var url = "{{ url_for('grade.make_likes', id=project.id) }}";
                            var data_dic = {
                                'like': likes,
                                'video': '{{ v.id }}'
                            };
                            $.ajax({
                                type: 'POST',
                                url: url,
                                data: JSON.stringify(data_dic),
                                contentType: 'application/json; charset=UTF-8',
                                dataType: 'json',
                                success: function (data) {
                                    window.history.back();
                                }
                            });
                            $.cookie("grade1", "weikeshipin", {expires:1});
                            alert("投票成功");
                        }
                    }
                });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值