首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js实现点赞计数

在JavaScript中实现点赞计数可以通过多种方式,这里提供一个简单的基于前端实现的示例。

基础概念: 点赞计数通常涉及到前端与后端的交互。前端负责用户界面的展示和用户交互的捕获,而后端则负责数据的存储和处理。

相关优势

  • 用户体验好,点赞操作可以即时反馈。
  • 减轻服务器压力,通过前端缓存和优化可以减少不必要的后端请求。

应用场景

  • 社交媒体平台
  • 博客文章
  • 视频分享网站

实现方式

  1. 前端HTML结构
代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>点赞计数示例</title>
</head>
<body>
<button id="likeButton">点赞</button>
<span id="likeCount">0</span>次点赞
<script src="like.js"></script>
</body>
</html>
  1. 前端JavaScript代码(like.js)
代码语言:txt
复制
document.addEventListener('DOMContentLoaded', function() {
    const likeButton = document.getElementById('likeButton');
    const likeCount = document.getElementById('likeCount');
    let count = parseInt(localStorage.getItem('likeCount')) || 0; // 从localStorage获取点赞数

    likeCount.textContent = count;

    likeButton.addEventListener('click', function() {
        count++;
        likeCount.textContent = count;
        localStorage.setItem('likeCount', count); // 更新localStorage中的点赞数
        // 这里可以添加代码将点赞数发送到后端服务器进行持久化存储
    });
});
  1. 后端处理(简化的示例,实际应用中需要考虑安全性、并发处理等问题): 如果需要将点赞数持久化到服务器,可以使用fetch API发送POST请求到后端服务。
代码语言:txt
复制
likeButton.addEventListener('click', function() {
    count++;
    likeCount.textContent = count;
    localStorage.setItem('likeCount', count);

    // 发送点赞数到后端
    fetch('/api/like', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({ count: count }),
    })
    .then(response => response.json())
    .then(data => {
        console.log('Success:', data);
    })
    .catch((error) => {
        console.error('Error:', error);
    });
});

后端示例(Node.js使用Express框架)

代码语言:txt
复制
const express = require('express');
const app = express();
app.use(express.json());

let likeCount = 0; // 这里应该从数据库中获取点赞数

app.post('/api/like', (req, res) => {
    likeCount = req.body.count;
    // 这里应该将likeCount保存到数据库
    res.json({ message: 'Like count updated successfully' });
});

app.listen(3000, () => console.log('Server running on port 3000'));

注意事项

  • 在实际应用中,需要考虑点赞操作的幂等性,防止重复点赞。
  • 点赞数的持久化应该依赖于后端数据库,而不是仅仅依赖前端存储。
  • 需要考虑安全性问题,比如防止恶意用户通过脚本大量点赞。

以上代码提供了一个基本的点赞计数功能的实现框架,实际应用中需要根据具体需求进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Redis实现点赞取消点赞

项目需求需要查看都谁点赞了,所以要存储每个点赞的点赞人、被点赞人,不能简单的做计数。...文章分四部分介绍: Redis 缓存设计及实现 数据库设计 数据库操作 开启定时任务持久化存储到数据库 一、Redis 缓存设计及实现 1.1 Redis 安装及运行 Redis 安装请自行查阅相关教程...下面来对这5种数据结构类型作简单的介绍: 1.4 点赞数据在 Redis 中的存储格式 用 Redis 存储两种数据,一种是记录点赞人、被点赞人、点赞状态的数据,另一种是每个用户被点赞了多少次,做个简单的计数...由于需要记录点赞人和被点赞人,还有点赞状态(点赞、取消点赞),还要固定时间间隔取出 Redis 中所有点赞数据,分析了下 Redis 数据格式中 Hash 最合适。...id,点赞用户id,点赞状态。

3.1K31
  • Redis是如何实现点赞、取消点赞的?

    项目需求需要查看都谁点赞了,所以要存储每个点赞的点赞人、被点赞人,不能简单的做计数。...文章分四部分介绍: Redis 缓存设计及实现 数据库设计 数据库操作 开启定时任务持久化存储到数据库 一、Redis 缓存设计及实现 1.1 Redis 安装及运行 Redis 安装请自行查阅相关教程...1.4 点赞数据在 Redis 中的存储格式 用 Redis 存储两种数据,一种是记录点赞人、被点赞人、点赞状态的数据,另一种是每个用户被点赞了多少次,做个简单的计数。...id,点赞用户id,点赞状态。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。 如有更好的实现方案欢迎在评论区交流…

    2.6K20

    Redis是如何实现点赞、取消点赞的?

    项目需求需要查看都谁点赞了,所以要存储每个点赞的点赞人、被点赞人,不能简单的做计数。...文章分四部分介绍: Redis 缓存设计及实现 数据库设计 数据库操作 开启定时任务持久化存储到数据库 一、Redis 缓存设计及实现 1.1 Redis 安装及运行 Redis 安装请自行查阅相关教程...下面来对这5种数据结构类型作简单的介绍: 1.4 点赞数据在 Redis 中的存储格式 用 Redis 存储两种数据,一种是记录点赞人、被点赞人、点赞状态的数据,另一种是每个用户被点赞了多少次,做个简单的计数...id,点赞用户id,点赞状态。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。

    2.5K20

    Redis 是如何实现点赞、取消点赞的?

    领读: 点赞是个频率比较高的事件,也不是特别重要的记录,使用缓存来存储还是比较合理的,另外像排行榜、热议等都可以使用缓存,先来看看点赞是如何实现的吧,详细代码可以clone看下哈,跟紧脚步,学技术~ -...项目需求需要查看都谁点赞了,所以要存储每个点赞的点赞人、被点赞人,不能简单的做计数。...文章分四部分介绍: Redis 缓存设计及实现 数据库设计 数据库操作 开启定时任务持久化存储到数据库 一、Redis 缓存设计及实现 1.1 Redis 安装及运行 Redis 安装请自行查阅相关教程...1.4 点赞数据在 Redis 中的存储格式 用 Redis 存储两种数据,一种是记录点赞人、被点赞人、点赞状态的数据,另一种是每个用户被点赞了多少次,做个简单的计数。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。

    7K64

    使用 Redis 如何实现点赞,取消点赞呢?

    项目需求需要查看都谁点赞了,所以要存储每个点赞的点赞人、被点赞人,不能简单的做计数。...文章分四部分介绍: Redis 缓存设计及实现 数据库设计 数据库操作 开启定时任务持久化存储到数据库 一、Redis 缓存设计及实现 1.1 Redis 安装及运行 Redis 安装请自行查阅相关教程...1.4 点赞数据在 Redis 中的存储格式 用 Redis 存储两种数据,一种是记录点赞人、被点赞人、点赞状态的数据,另一种是每个用户被点赞了多少次,做个简单的计数。...id,点赞用户id,点赞状态。...以上就是点赞功能的设计与实现,不足之处还请各位大佬多多指教。 如有更好的实现方案欢迎在评论区交流… 代码出自开源项目 CodeRiver,致力于打造全平台型全栈精品开源项目。

    2.3K20

    Auto.js实现视频号点赞自动化

    给大家分享一个自动化点赞视频号的功能,仅供大家学习参考,请勿滥用! 基本实现思路: 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")...().findOne(id("com.tencent.mm:id/fnp")); // 点赞前文字 let num1 = goodNum1.text() - 0; // 开始来点赞

    1.6K10

    HarmonyOS实战—实现抖音点赞和取消点赞效果

    双击点赞 和 双击取消点赞 如:在抖音中双击屏幕之后就可以点赞,小红心就会变亮 [在这里插入图片描述] 把白色和红色的心形图片复制到 media 下 [在这里插入图片描述] [在这里插入图片描述] 需要图片的可以自取...,下面白色图片由于没有背景,所以显示的是白色的,下载后鼠标点击就能看见了 [请添加图片描述] [请添加图片描述] 因为要双击屏幕才能点赞,所以还要给布局组件id 代码实现: ability_main 实现呢? 业务分析: 双击屏幕之后点赞。(上面已实现),再次双击屏幕之后,不会取消点赞,只有点击后红心之后才能取消点赞。...单击红心也可以点赞,再次单击红心就会取消点赞 实现思路: 给最外层的布局添加双击事件,双击之后点赞,变成红色心。 如果已经被点赞,那么还是修改为红色心,相当于不做任何处理。 给图片添加单击事件。...代码实现: 上面布局文件不变,MainAbilitySlice 如下: 给布局添加双击事件,因为再次双击不会取消点赞,所以把else代码里设置为红色后就把 flag 取反去掉,就不会出现再次双击取消点赞了

    2K20

    利用 leanCloud 实现点赞功能

    点赞功能 社交平台的必备良药,谁谁谁什么时候给你点了个赞,点赞什么的貌似已经深入人心了。...之前在 @火喵酱 的博客页面有看到说想用 leancloud 实现 do you like me 的点赞功能,之前没接触 leancloud 的 SDK 不知道咋搞,后来就不了了之,然后因为最近做了 valine...的最新评论排行,所以借这个风顺便来做个点赞功能~ 点赞按钮 实践操作 和 valine 最新评论一样,首先需要引入 sdk 并初始化完成化后接入具体实现的代码即可(这个就不说了,上篇笔记里有写的) 实现思路...这里再聊下思路,一般做点赞功能都是在本地点击计数之后再把数据上传到云端服务器,访问页面的时候直接根据页面拉取对应的数据填充即可。...=undefined){ //.. } 其他 以上代码写入 SDK 初始化后运行就可以正常获取不同页面的点赞次数了,数据创建后会在 leancloud 控制台显示,如下 其实拿到信息还可以通过点赞数量创建热门文章

    14110
    领券