本文目标主要介绍 通过 ajax+cookie 实现文章访问量和点赞数量的动态更新,并且在一次会话中,不会重复增加。即刷新网页,访问量不会增加,点赞数量也不能多次增加。

效果预览

点赞:点赞后再继续点,点赞数不会增加,刷新也不行

浏览量:浏览量+1,刷新不会继续增加

视图层代码如下

1、点赞的 html 部分

  1. <span class="like">
  2. <a href="javascript:;" data-action="ding" data-id="1" title="点赞" class="favorite">
  3. <i class="fa fa-thumbs-up"></i>赞
  4. <i class="likeCount">${articleCustom.articleLikeCount}</i>
  5. </a>
  6. </span>

2、文章浏览量 html 部分

  1. <li class="views">
  2. <i class="fa fa-eye"></i><i class="viewCount"> ${articleCustom.articleViewCount}</i> views
  3. </li>

3、js 代码

  1. <script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
  2. <script src="${pageContext.request.contextPath}/js/jquery.cookie.js"></script>
  3. <script type="text/javascript">
  4. function increaseViewCount() {
  5. if($.cookie("viewId")!=${articleCustom.articleId}) {
  6. $.ajax({
  7. async: false,
  8. type:"POST",
  9. url:"${pageContext.request.contextPath}/article/view",
  10. data: {articleId:${articleCustom.articleId}},
  11. dataType:"text",
  12. success:function (data) {
  13. $(".viewCount").html(data);
  14. $.cookie(
  15. "viewId",
  16. ${articleCustom.articleId},//需要cookie写入的业务
  17. {
  18. "path":"/", //cookie的默认属性
  19. }
  20. );
  21. },
  22. error:function()
  23. {
  24. //alert("获取数据出错!");
  25. },
  26. });
  27. }
  28. }
  29. increaseViewCount();
  30. $(".favorite").click(function () {
  31. if($.cookie("likeId")!=${articleCustom.articleId}) {
  32. $.ajax({
  33. async: false,
  34. type:"POST",
  35. url:"${pageContext.request.contextPath}/article/like",
  36. data: {articleId:${articleCustom.articleId}},
  37. dataType:"text",
  38. success:function (data) {
  39. $(".likeCount").html(data);
  40. $.cookie(
  41. "likeId",
  42. ${articleCustom.articleId},//需要cookie写入的业务
  43. {
  44. "path":"/", //cookie的默认属性
  45. }
  46. );
  47. },
  48. error:function()
  49. {
  50. //alert("获取数据出错!");
  51. },
  52. });
  53. }
  54. });

控制器代码

  1. //点赞数增加
  2. @RequestMapping(value = "/article/like",method = {RequestMethod.POST})
  3. @ResponseBody
  4. public Integer increaseLikeCount(HttpServletRequest request)
  5. throws Exception {
  6. Integer articleId = Integer.valueOf(request.getParameter("articleId"));
  7. ArticleCustom articleCustom = articleService.getArticleById(articleId);
  8. int articleCount = articleCustom.getArticleLikeCount();
  9. articleCustom.setArticleLikeCount(articleCount + 1);
  10. articleService.updateArticle(articleId, articleCustom);
  11. return articleCount+1;
  12. }
  13. //文章访问量数增加
  14. @RequestMapping(value = "/article/view",method = {RequestMethod.POST})
  15. @ResponseBody
  16. public Integer increaseViewCount(HttpServletRequest request)
  17. throws Exception {
  18. Integer articleId = Integer.valueOf(request.getParameter("articleId"));
  19. ArticleCustom articleCustom = articleService.getArticleById(articleId);
  20. int articleCount = articleCustom.getArticleViewCount();
  21. articleCustom.setArticleViewCount(articleCount + 1);
  22. articleService.updateArticle(articleId, articleCustom);
  23. return articleCount+1;
  24. }

注意:一定要加 @ResponseBody  注解,否则返回值会被认为是 路径,导致 ajax 返回值类型不对,会出现一直是运行 error 里的部分。

最后我们可以查看浏览器 Cookie,发现里面有我们创建的 Cookie

本文链接:https://liuyanzhao.com/6175.html

SSM博客 点赞和文章浏览量实现相关推荐

  1. 利用requests库模拟访问博客来提升文章阅读量

    利用requests库模拟访问博客来提升文章阅读量 一.概述 二.简陋版程序 三.升级版程序 一.概述 有的同学在csdn上写了文章之后,看着自己文章的阅读量,少的可怜,不禁希望能把阅读量快速涨上去, ...

  2. php 文章浏览量 缓存,WordPress缓存文章浏览量访问不自动增加怎么办?WordPress缓存导致文章阅读数点赞数不更新...

    Wordpress 静态缓存目前对于何先生来说作用不是很大,比较适合一些流量比较大的博客或者网站. 之前接触过 Wordpress 静态缓存,遇到过这个问题后面没有去深究. WordPress缓存文章 ...

  3. Django博客系统(推荐文章数据展示)

    1. 添加文章浏览量数据 1.每次请求文章详情时给浏览量+1 try:article=Article.objects.get(id=id) except Article.DoesNotExist:re ...

  4. 《恋花蝶的博客》所有文章的官方阅读指引

    <恋花蝶的博客>所有文章的官方阅读指引 恋花蝶的博客:http://blog.csdn.net/lanphaday 导语 至2007年7月4日,我的博客(http://blog.csdn. ...

  5. 博客推广优化SEO排名方案大汇总!何必东奔西走这里的博客优化的文章应有尽有!!...

    企业 博客优化推广精品方案很有深度,很有参考价值. 建立博客群 博客地址: ①Donews :http://blog.donews.com/default.html ②新浪:http://blog.s ...

  6. 快过年了,博客园里的文章也变少了

    快过年了,博客园里的文章也变少了,大家都开始休息了吗? 转载于:https://www.cnblogs.com/RobotTech/archive/2008/02/03/1063461.html

  7. 使用metablog迁移博客园的文章

    有时候我们希望能将自己所有博客园的文章迁移到其他的博客site,大家可能最先想到的就是metablog,没错,只有它了. 首先搜索了一下,很容易搜到老赵这篇文章 "一次批量修改博客文章的经验 ...

  8. 怎么博客圆的文章越来越杂?

    最近发现怎么博客圆的文章越来越杂? PHP,JAVA等非.NET技术也来拉 好象博客圆现在不是一个纯.NET社区拉 管理员是不是该采取一些手段来防止这种现象的扩大

  9. .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱

    前言 大家好,我是晓晨.许久没有更新博客了,今天给大家带来一篇干货型文章,一个每隔5分钟抓取博客园首页文章信息并在第二天的上午9点发送到你的邮箱的小工具.比如我在2018年2月14日,9点来到公司我就 ...

  10. 博客版面设计~文章填充

    博客版面设计~文章填充博客版面设计~文章填充博客版面设计~文章填充博客版面设计~文章填充博客版面设计~文章填充博客版面设计~文章填充博客版面设计~文章填充博客版面设计~文章填充博客版面设计~文章填充博 ...

最新文章

  1. java程序a-z b-y_有一行电文,以按下面规律译成密码: A---Z a---z B---Y b---Y C---X c---x …… 即第1个字母编程第26个字...
  2. 【推荐系统】深入理解推荐系统:排序
  3. 微软并行编程类库Parallel Extensions初探 Part1
  4. 深入浅出组合逻辑电路(3)常见的几种编码器
  5. SQL数据库不用SQL语句能显示全表的内容_详解mysql数据库sql优化技巧总结
  6. postman如何模拟Map参数请求呢?
  7. 临时限速服务器系统ppt,临时限速系统讲解.pptx
  8. 用AI为金融行业赋能 一览群智发布金融行业智能产品
  9. PyTorch 全部笔记的思维导图精简记忆版
  10. 【OpneWRT】编译ipk
  11. 基于MYSQL的新闻发布系统数据库设计项目实战
  12. Win11的筛选键怎么关闭
  13. 每日思考第 61 期:职场PUA与情场PUA
  14. 实验3 交互式SQL语言1
  15. pytorch蜜蜂蚂蚁数据集处理python代码
  16. 可喜可贺,暴雪即将收购第一家工作室Proletariat,魔法吃鸡停运
  17. Spring Cloud Gateway(十):网关过滤器工厂 GatewayFilterFactory
  18. apache-maven-3.8.5配置
  19. 学术圈很火的 超材料、超表面、超透镜:什么时候可以代替传统透镜?
  20. RxJava2基础总结(二)

热门文章

  1. 2492 上帝造题的七分钟 2
  2. JSPServlet相关
  3. 无法解析的外部符号 __imp_RegCloseKey
  4. matlab 图例自定义,matlab中如何自定义图例_常见问题解析
  5. linux查看挂载内存卡,Ubuntu Linux 挂载移动硬盘、U盘、SD卡(对于新手)
  6. html文档utf8文档字节,HTML UTF-8 参考手册
  7. el-form-item 如何限制只能输入数字_中教云数字课程教材云平台操作答疑
  8. 关于 springboot 的自动配置
  9. pythonlog数组_Numpy掩码式数组详解
  10. html备注技术支持,技术支持协议书范本