本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。...点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。 点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。...由于需要记录点赞人和被点赞人,还有点赞状态(点赞、取消点赞),还要固定时间间隔取出 Redis 中所有点赞数据,分析了下 Redis 数据格式中 Hash 最合适。...设点赞人的 id 为 likedPostId,被点赞人的 id 为 likedUserId ,点赞时状态为 1,取消点赞状态为 0。...LikedStatusEnum { LIKE(, "点赞"), UNLIKE(, "取消点赞/未点赞"), ; private Integer code;
点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。 点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。...由于需要记录点赞人和被点赞人,还有点赞状态(点赞、取消点赞),还要固定时间间隔取出 Redis 中所有点赞数据,分析了下 Redis 数据格式中 Hash 最合适。...设点赞人的 id 为 likedPostId,被点赞人的 id 为 likedUserId ,点赞时状态为 1,取消点赞状态为 0。...LikedStatusEnum { LIKE(1, "点赞"), UNLIKE(0, "取消点赞/未点赞"), ; private Integer code;...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。
本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。...点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。 点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。...由于需要记录点赞人和被点赞人,还有点赞状态(点赞、取消点赞),还要固定时间间隔取出 Redis 中所有点赞数据,分析了下 Redis 数据格式中 Hash 最合适。...设点赞人的 id 为 likedPostId,被点赞人的 id 为 likedUserId ,点赞时状态为 1,取消点赞状态为 0。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。 如有更好的实现方案欢迎在评论区交流…
点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。 点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。...由于需要记录点赞人和被点赞人,还有点赞状态(点赞、取消点赞),还要固定时间间隔取出 Redis 中所有点赞数据,分析了下 Redis 数据格式中 Hash 最合适。...设点赞人的 id 为 likedPostId,被点赞人的 id 为 likedUserId ,点赞时状态为 1,取消点赞状态为 0。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。...另外,点赞/取消点赞 跟 点赞数 +1/ -1 应该保证是原子操作 , 不然出现并发问题就会有两条重复的点赞记录 , 所以要给整个原子操作加锁 .
取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。...由于需要记录点赞人和被点赞人,还有点赞状态(点赞、取消点赞),还要固定时间间隔取出 Redis 中所有点赞数据,分析了下 Redis 数据格式中 Hash 最合适。...设点赞人的 id 为 likedPostId,被点赞人的 id 为 likedUserId ,点赞时状态为 1,取消点赞状态为 0。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。...另外,点赞 / 取消点赞 跟 点赞数 +1/ -1 应该保证是原子操作 , 不然出现并发问题就会有两条重复的点赞记录 , 所以要给整个原子操作加锁 .
本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。...点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。 点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。...由于需要记录点赞人和被点赞人,还有点赞状态(点赞、取消点赞),还要固定时间间隔取出 Redis 中所有点赞数据,分析了下 Redis 数据格式中 Hash 最合适。...设点赞人的 id 为 likedPostId,被点赞人的 id 为 likedUserId ,点赞时状态为 1,取消点赞状态为 0。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。 如有更好的实现方案欢迎在评论区交流… 代码出自开源项目 CodeRiver,致力于打造全平台型全栈精品开源项目。
取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。...点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。 点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。...设点赞人的 id 为 likedPostId,被点赞人的 id 为 likedUserId ,点赞时状态为 1,取消点赞状态为 0。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。...另外,点赞 / 取消点赞 跟 点赞数 +1/ -1 应该保证是原子操作 , 不然出现并发问题就会有两条重复的点赞记录 , 所以要给整个原子操作加锁 .
双击点赞 和 双击取消点赞 如:在抖音中双击屏幕之后就可以点赞,小红心就会变亮 [在这里插入图片描述] 把白色和红色的心形图片复制到 media 下 [在这里插入图片描述] [在这里插入图片描述] 需要图片的可以自取...能否按照抖音的业务去实现呢? 业务分析: 双击屏幕之后点赞。(上面已实现),再次双击屏幕之后,不会取消点赞,只有点击后红心之后才能取消点赞。...单击红心也可以点赞,再次单击红心就会取消点赞 实现思路: 给最外层的布局添加双击事件,双击之后点赞,变成红色心。 如果已经被点赞,那么还是修改为红色心,相当于不做任何处理。 给图片添加单击事件。...代码实现: 上面布局文件不变,MainAbilitySlice 如下: 给布局添加双击事件,因为再次双击不会取消点赞,所以把else代码里设置为红色后就把 flag 取反去掉,就不会出现再次双击取消点赞了...,只有点击小红心才能取消点赞 [在这里插入图片描述]
产品需求,实现类似微博的持续点赞再取消功能,因为自己也偶尔刷微博,对这功能有一定的使用上的了解, 至于微博点赞的具体实现我并不知道,微博点赞在断网的情况下依然能点赞,不会提示网络异常,等有网络之后...重新刷新,实际是没有点赞的,那就针对这现象去实现吧....避免并发,减少CPU压力,我个人会想到 HandlerThread ,不懂可以自行科普,这里只说我实现的点赞功能原理. private Timer mTimer;//定时器 private TimerTask...mHandlerThread.getLooper());//处理子线程任务 自身封装一个单列的管理类: private Map<String, Map<Long, Integer mMap;//基于自身需求实现一个点赞的消息管理器...总结 以上所述是小编给大家介绍的Android 仿微博的点赞功能的实现原理(持续点赞再取消),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
最近在学脚本开发,今天终于有小有所成,写了一个微信视频号自动点赞的功能,以下是代码实现,特此记录。...function goodClick(){ // 点赞的容器 let goodBox = id("com.tencent.mm:id/a2s").findOne(); //...点赞的图标 let goodIcon = goodBox.children().findOne(id("com.tencent.mm:id/f1x")); // 点击的范围 let...:id/fnp")); // 点赞前文字 let num1 = goodNum1.text() - 0; // 开始来点赞 obj.click(); sleep...// 点赞后文字 let num2 = goodNum2.text() - 0; // 如果取消赞 if(num1>num2){ // 补回点赞
最近在学脚本开发,今天终于有小有所成,写了一个朋友圈自动点赞的功能,以下是代码实现,特此记录。...// 单个页面点击 function pageClick(){ // 整个页面"两点"集合 var twoDotList = id("com.tencent.mm:id/ik").find...(); // 循环操作每个"两点" twoDotList.forEach(item => { // 点击"两点" item.click();...// 等待"赞"出现 sleep(1500); // 获取"赞"控件 var good = text("赞").findOnce();...if(good){ // 获取"赞"父控件 var goodParent = good.parent(); goodParent.click
给大家分享一个自动化点赞视频号的功能,仅供大家学习参考,请勿滥用! 基本实现思路: 1. 找到点赞图标和点赞数量的父容器A; 2. 通过父容器A找到点赞图标的可点击对象B; 3....点击可点击对象B进行点赞; 正常来说,上面的操作已经完成了我们想要的功能,但是可能会因为人为的滑屏,将已经点赞了再次点击,变为了取消赞,所以要做下面的操作: 5....再次通过父容器A找到点赞数量D; 6. 比较点赞前的点赞数量C与点赞后的点赞数量D,如果数量C大于数量D说明之前取消了点赞,再次点击可点击对象B补回点赞; 7....滑屏循环上面的操作; 以下是代码实现: function goodClick(){ // 点赞的容器 let goodBox = id("com.tencent.mm:id/a2s")...:id/fnp")); // 点赞后文字 let num2 = goodNum2.text() - 0; // 如果取消赞 if(num1>num2){
"auto"; function 下滑(){ className("AbsListView").scrollable().scrollForward(); } function 赞(){ var like...= className("ImageView").desc("赞").find(); if(like){ like.click(); return true; } return false; } function...显示更多(){ for(let i = 0; i < 2;i++){ click("显示更多"); } } toast("请打开自己的资料页,点击点赞图标"); sleep(100); waitForActivity...com.tencent.mobileqq.activity.VisitorsActivity"); while(notStopped()){ var i = 0; while(i < 10){ i += 赞(...1 : 0; click("取消"); } 显示更多(); 下滑(); }
特此水一篇折腾记录-Typecho实现文章点赞,当时也懒得记录,现在觉得有必要记录一下。...,让点赞字段 +1 $db->query('UPDATE `' ....$cid . ';'); // 返回点赞数量 return ++$callback['agree']; } 然后找到post.php在顶部加入以下代码用于判断是否是点赞的 POST...>//点赞数量 最后Ajax点赞: 以下js代码添加至footer.php中, // 点赞按钮点击 $('#agree').on('click', function...var re = /\d/; // 匹配数字的正则表达式 // 匹配数字 if (re.test(data)) { // 把点赞按钮中的点赞数量设置为传回的点赞数量
点赞功能 社交平台的必备良药,谁谁谁什么时候给你点了个赞,点赞什么的貌似已经深入人心了。...之前在 @火喵酱 的博客页面有看到说想用 leancloud 实现 do you like me 的点赞功能,之前没接触 leancloud 的 SDK 不知道咋搞,后来就不了了之,然后因为最近做了 valine...的最新评论排行,所以借这个风顺便来做个点赞功能~ 点赞按钮 实践操作 和 valine 最新评论一样,首先需要引入 sdk 并初始化完成化后接入具体实现的代码即可(这个就不说了,上篇笔记里有写的) 实现思路...这里再聊下思路,一般做点赞功能都是在本地点击计数之后再把数据上传到云端服务器,访问页面的时候直接根据页面拉取对应的数据填充即可。...=undefined){ //.. } 其他 以上代码写入 SDK 初始化后运行就可以正常获取不同页面的点赞次数了,数据创建后会在 leancloud 控制台显示,如下 其实拿到信息还可以通过点赞数量创建热门文章
php /** * 点赞 */ namespace app\like\service; use app\common\DataService; use app\common\Redis; class...const LIKE_USER_RECEIVE_SHOW_CHINESENAME = '我点赞了这条'; const BLOG_CHINESENAME = '资讯'; /**...* 点赞资讯 * @param int $userId 用户ID * @param int $blogId 资讯ID */ public function...":blog"); return true; } /** * 取消点赞资讯 * @param int $userId 用户ID * @param...($userId, $sys); Redis::getInstance()->redisZrem($key, $blogId); //我的点赞全部列表
在使用这些应用过程中其实不难发现,在所有的直播界面,少不了的就是各种打赏、各种点赞。...今天自己就针对点赞功能敲了一下,代码不多,主要是涉及到动画运动轨迹运算,这里需借助 贝塞尔曲线 相关知识,我使用三阶贝塞尔曲线来实现轨迹动画。 运行效果 ?...一、具体实现流程 仔细分析整个点赞过程可以发现,首先是“爱心”的出现动画,然后是“爱心”以类似气泡的形式向上运动。...CurveEveluator,因为“爱心”在上浮的过程中并不是以某一直线运动的,而是通过一条不规则的曲线往上浮,而我们知道 TypeEveluator 的作用就是根据动画的变化率来设置控件属性的当前值,具体算法实现就是使用三阶贝塞尔曲线公式...其中 P0 是动画的起点,P3 是动画的终点,而另外两点P1、P2是则作为三阶贝塞尔曲线的控制点。
archive->request->do_action){ likeup($archive->request->likeup,$archive->request->do_action); exit; } } //点赞函数...$cid, ""); } echo $num; } post请求参数 likeup:文章id do_action:do或者undo likeup是指定文章id的,do_action是点赞动作,动作为do...为点赞,undo为取消点赞!...前端方面 前端方面需要写ajax请求接口的函数,然后在post.php里加入按钮,点击按钮传递文章id与动作触发相关点赞或者取消点赞效果。...关于点赞数 在post.php里添加cid,'kkb'); ?>即可显示点赞数,同时ajax动作请求完成也会返回点赞数。 linkCard('.post-content','0');
点赞业务本身并不复杂,无非是对数据的update,但是点赞本身是无意识行为,并且同一个用户可对博文进行点赞/取消点赞,如果直接操作数据库,无疑会增加数据库io操作。...,1:点赞,2:取消点赞 public enum ThumbEnum { THUMB(1,"点赞"), CANCELTHUMB(2,"取消点赞"), private String...根据是否存在key判断是点赞还是取消点赞,所以接口写一个即可 Json thumbOrCancel(Long infoId,Long userId); impl String key...userId) .build(); Map map = new HashMap(); if (flag) { //已点过赞则为取消赞操作...redisService.srem(key, userIdStr); vo.setType(2);//1点赞2取消赞 map.put
/** * 为指定QQ点赞, 理论兼容所有安卓机...具体效果我也不知道,只在安卓7.0+版本测试了 * 如果有问题,群里说吧.QQ号码格式看下面 * 注意: 运行本脚本需要安卓7.0以上或者已经...root的设备,最低运行版本不建议低于安卓5.0 */ auto.waitFor(); var QQNum_Arry = [ //按照如下格式添加你要点赞的QQ号 "289986635",...com.tencent.mobileqq.activity.FriendProfileCardActivity"); sleep(3000); let Btn = descEndsWith("次赞"
领取专属 10元无门槛券
手把手带您无忧上云