首页
学习
活动
专区
圈层
工具
发布

树形递归实现多级评论

最近在想将博客网站做成小程序版本,之前只是实现了文章列表和文章详情的展示,这两天在进行评论的改写。...在评论中是一个多级嵌套的方式来进行展示的,也就是说每一条评论有一个自己的评论id,然后有一个父ID,指向父级的评论ID,孙子节点和祖父节点之间没有相应的关联。...这样形成一个多级嵌套的模式,具体实现的效果为下图所示 ?...的节点取出,这些节点为最外层节点,然后将子节点依次插入,我们需要进行排序,由于后台返回的数据已经按照时间进行了排序,孙子节点产生的时间必然要晚于子节点,所以依次插入的时候无需担心会有节点漏掉 下面来看具体实现代码...child.map(item=>{ parent = insertNode(parent, item); }); console.log(parent); 至此,一个完整的树形递归实现多级评论就算是完成了

1.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    django之评论系统及多级评论

    最后,这个评论是关联到某篇文章(Post)的,由于一个评论只能属于一篇文章,一篇文章可以有多个评论,是一对多的关系,因此这里我们使用了 ForeignKey。...,因为后面需要把评论和被评论的文章关联起来。...如果接收一个模型的实例,那么这个实例必须实现了 get_absolute_url 方法,这样 redirect 会根据 get_absolute_url 方法返回的 URL 值进行重定向。...{% endfor %} 接下来尝试在详情页下的评论表单提交一些评论数据,可以看到详情页的评论列表处渲染了你提交的评论数据。...https://www.zmrenwu.com/courses/django-blog-tutorial/materials/13/ 多级评论实例 需求分析 一般论坛中有评论和子评论,这样很容易就成了一个评论树

    8.3K61

    拒绝重复代码,封装一个多级菜单、多级评论、多级部门的统一工具类

    一、介绍 你能看到很多人都在介绍如何实现多级菜单的效果,但是都有一个共同的缺点,那就是没有解决代码会重复开发的问题。如果我需要实现多级评论呢,是否又需要自己再写一遍?...在本文中,我将介绍如何使用SpringBoot创建一个返回多级菜单、多级评论、多级部门、多级分类的统一工具类。...因此,在设计数据库评论字段时,需要权衡使用treepath字段和父评论ID字段的优缺点,并根据具体的应用场景和需求做出选择。...如果你更关注写入操作的效率和数据一致性,并且树的深度不会很大,那么使用父评论ID字段来实现多级评论可能更简单和高效。...编写工具类TreeNodeUtil 其中我们需要实现能将一个List元素构建成熟悉结构 我们需要实现生成tree_path字段 我们需要优雅的实现该方法 /** * @Description: 树形结构工具类

    2.2K00

    拒绝重复代码,封装一个多级菜单、多级评论、多级部门的统一工具类!

    一、介绍你能看到很多人都在介绍如何实现多级菜单的效果,但是都有一个共同的缺点,那就是没有解决代码会重复开发的问题。如果我需要实现多级评论呢,是否又需要自己再写一遍?...在本文中,我将介绍如何使用SpringBoot创建一个返回多级菜单、多级评论、多级部门、多级分类的统一工具类。介绍数据库字段设计数据库设计「主要是介绍是否需要tree_path字段。」...因此,在设计数据库评论字段时,需要权衡使用treepath字段和父评论ID字段的优缺点,并根据具体的应用场景和需求做出选择。...如果你更关注写入操作的效率和数据一致性,并且树的深度不会很大,那么使用父评论ID字段来实现多级评论可能更简单和高效。二、统一工具类具体实现1....编写工具类TreeNodeUtil其中我们需要实现能将一个List元素构建成熟悉结构我们需要实现生成tree_path字段我们需要优雅的实现该方法/** * @Description: 树形结构工具类

    52800

    多级缓存实现方案

    来源:https://tech.youzan.com/ 为什么要做 TMC 多级缓存解决方案的痛点 TMC 整体架构 TMC 本地缓存 如何透明 整体结构 热点发现 整体流程 数据收集 热度滑窗 热度汇聚...热点探测 特性总结 实战效果 快手商家某次商品营销活动 双十一期间部分应用 TMC 效果展示** 功能展望 ---- TMC,即“透明多级缓存(Transparent Multilevel Cache...多级缓存解决方案的痛点 基于上述描述,我们总结了下列 多级缓存解决方案需要解决的需求痛点: 热点探测:如何快速且准确的发现 热点访问 key ?...效果验证:如何让应用层查看本地缓存命中率、热点 key 等数据,验证多级缓存效果? 透明接入:整体解决方案如何减少对应用系统的入侵,做到快速平滑接入? TMC 聚焦上述痛点,设计并实现了整体解决方案。...准确性 key 的热度汇聚结果由“基于时间轮实现的滑动窗口”汇聚得到,相对准确地反应当前及最近正在发生访问分布。

    2.6K40

    Vue 多级菜单的实现

    碰到的第一个难题就是多级菜单。 因为之前没做过,第一次做起来还是有点难的,最后实现的效果是这样。注意看地址栏。...难题一 CSS 的实现 多级菜单的收缩,展开都是使用 CSS 控制,所以要配合 Vue 传值判断是否 active 在父组件加入 activeItem 告诉子组件哪个索引是活跃的。...菜单由于考虑是多级的,所以我们需要封装成一个组件,并且需要使用组件的递归调用自身已实现多级。 父组件 在父组件中,我们可以使用这种形式来记录菜单数据。...他接受来自父组件的 items 数组,然后使用 v-for 渲染每一个子菜单(不是一级菜单,是多级菜单的递归渲染)。在父组件中,也通过 v-for 渲染一级菜单。...index" 11 v-for="(item, index) in items" 12 :key="index" 13/> COPY CSS 样式 以上步骤已经实现了对菜单加入和取消

    2.7K20

    Python中如何实现多级缓存

    Python中如何实现多级缓存:以猴子音悦音乐授权为例在现代应用程序开发中,缓存是一种常用的技术手段,用于提高系统的性能和响应速度。...本文将以猴子音悦音乐授权为例,探讨如何在Python中实现多级缓存。什么是版权音乐?版权音乐,也被称为罐头音乐,是指已经事先制作好的音乐成品,并且受到版权保护。这类音乐不能随意流传,主要用于商业用途。...多级缓存不仅能够减轻数据库的压力,还能提高用户请求的响应速度,从而提升用户体验。技术问题:Python中如何实现多级缓存?实现方案概述在Python中,我们可以利用多种库来构建多级缓存系统。...通过上述方法,我们可以在Python项目中轻松地实现高效可靠的多级缓存机制,这对于像猴子音悦音乐授权这样的高流量服务来说尤为重要。希望本文对你有所帮助!...关键词猴子音悦音乐授权python多级缓存100万版权音乐库版权无忧参考本文经过专业整理和优化,如有不准确之处,欢迎在评论区指出。

    40010

    MongoDB实现评论榜

    , 用户可以发出自己的提问,其他用户来解答, 同时楼主可以回复别人的评论,别人依然可以回复楼主 数据结构 mongodb可以存储文档啊, 其实我们要做的就是构建一个合适的类,评论帮也就成功一大半了 问题...当时是按照不同的用户分组, 同一个用户的全部评论,已经楼主对它的回复,以及别人对它的回复都放在一起, 所以需要一个字段,group(我选的用户id), 专门存储分组的标志....如果前端想在页面的分左右两部分展示自己的评论和别人的评论,就需要一个标记,既然上面都已经在遍历了,多加一个判断也无妨, 拿着前端提交过来的用户id和Answer中的userId比对, 如果相等,就把这个评论的...flag标记为true, 前端根据这个标记区分, 从而给用户更多的权限,比如删除自己的评论 局限性 如果没个问题都像网易音乐那种,上万条评论,这样的话,估计就废了,虽然使用stream会快,但是也扛不住量啊..., 但是数量小的话,还是可以接受的, 其实理想的状态是评论可以以分页的形式获取出来, 感觉才正宗。

    48310

    面试官:如何实现多级缓存?

    1.冗余设计理念当然不是,不要把所有鸡蛋放到一个篮子里,成熟的系统在关键功能实现时一定会考虑冗余设计,注意这里的冗余设计不是贬义词。...2.多级缓存概述缓存功能的设计也是一样,我们在高并发系统中通常会使用多级缓存来保证其高效运行,其中的多级缓存就包含以下这些:浏览器缓存:它的实现主要依靠 HTTP 协议中的缓存机制,当浏览器第一次请求一个资源时...2.1 开启浏览器缓存在 Java Web应用中,实现浏览器缓存可以使用 HttpServletResponse 对象来设置与缓存相关的响应头,以开启浏览器的缓存功能,它的具体实现分为以下几步。...2.3 使用分布式缓存在 Spring Boot 项目中使用注解的方式来操作分布式缓存 Redis 的实现步骤如下。...SpringApplication.run(Application.class, args); }}⑤ 使用注解进行缓存操作在业务逻辑类中使用 @Cacheable、@CacheEvict 等注解实现数据的缓存读取和更新

    1.6K10

    twikoo仿段落评论,实现快速评论功能

    碎碎念 前几天在twikoo的交流群中,有人提到了这样一个问题:twikoo可以实现段落评论吗?...我想了一下,下载了个番茄小说发现,他们都是按照每一行的内容分别进行评论的,Hexo可以实现类似于每一段落一个Url,也就是#[段落名]的格式,但是Twikoo并不能将这些段落分开,而且本来评论就很少了,...所以我想是否可以利用我的说说页面中的,点击评论按钮后后会在评论区添加一个:> + “文本”,从而实现类似引用的功能,那么也就实现了仿段落评论,同时所有的评论都会在评论区显示,避免了因为都在段落评论而导致主评论区没人的尴尬局面...问题提出番茄小说Hexo段落链接说说卡片回复卡片回复效果 内容简述 实现亮暗模式适配 实现高分辨率适配,设置上下阈值,基本确保不会超出屏幕 动画效果适配 自动将节选段落放置在评论框中 解决文本中含有回车导致函数失效的问题...妥协方案 下面我们需要实现该功能,刚开始我选择的时使用和说说页面类似的效果,当点击评论后,找到评论区输入框,将选中文字放到输入框中,进行类似于回复段落的效果,但是由于我设置的懒加载,当评论区没有滚入到页面视野内时不会自动加载

    1.6K20

    SharePoint 2013 实现多级审批工作流

    上一篇介绍了安装和配置SharePoint 2013 Workflow,这一篇将用SharePoint 2013 Designer Workflow来实现一个多级审批工作流。...审批工作流介绍 这个Demo是基于多级审批工作流。以古代上传奏折为场景,共分为3个阶段。...然后,我们预先设定,以文档库来作为我们的上报奏折库,所以我们需要为其设定自定义的多级审批工作流。最后创建自定义的Task来存放待审批的任务。...创建多级审批工作流 首先,我们可以创建多个审批Stage(阶段),每一阶段处理不同的流程,如下所示: ?...因为,我们工作流最终目的是实现多级审批,即一级审批通过,交给二级审批人,依次审批下去。当审批拒绝时,工作流结束,所示稍稍完善下上面的实现方式,具体流程如下实现: ?

    3K90

    如何在YashanDB中实现多级缓存策略

    在此背景下,YashanDB作为一个云原生数据库,支持多级缓存策略,为数据访问提供了灵活的加速手段。本文将深入探讨如何在YashanDB中实现多级缓存策略,提高系统的响应速度与整体性能。...多级缓存策略概述多级缓存策略是指在系统中部署多个层次的缓存,以分层管理数据请求。通过将数据存放在不同层级的缓存中,可以降低数据访问的延迟,提高并发访问性能。...实现全局缓存服务,允许多个实例高效共享相同的数据。定期进行缓存清理与拥塞指违规策略,避免缓存臭虫的现象。结论随着数据规模的不断增加,优化数据访问存储的策略愈发显得重要。...YashanDB的多级缓存策略有效应对了高并发、高可用性需求,通过合理配置内存缓存、磁盘缓存与共享缓存,促进数据访问速度,提高系统性能。...展望未来,随着技术的发展,数据处理的优化技术可能会愈发复杂与多样化,数据库系统需要不断更新技术以保持竞争力,充分利用多级缓存策略将是提升性能的关键。

    32400

    Disqus评论框改造工程-最近评论的实现

    最近从多说迁移到了 Disqus,确实老东家做的插件会好得多,唯一的麻烦就是需要一些步骤才能看到评论框。 大多功能都还凑合。唯一不满意的就是 CSS 风格。...本来也没多在意,也就一个 Disqus 的 Logo 放在那儿还看得过去,今天试着用他们 Advanced Usage 里面加了个最近评论框,同样也是 Iframe,不过各种padding加起来之后丑得不行...是时候研究一下 Disqus 的 API 了 毕竟是最大的三方评论供应商,他们的 API 及其详细。1....一章内介绍了如何进行请求,实际上就是告诉你记得把 Key 传过去 从Documents 页面找到我们需要的 call,也就是Forums/listPosts 注意还有其他的listPosts的需求,当前我们使用的是全站评论.../评论内容,甚至一同返回了纯文本和富文本两种内容,最后将返回的数据进行渲染一下: $.ajax({ url: 'https://disqus.com/api/3.0/forums

    84030

    纯代码实现WP评论添加@评论者功能

    对于使用WordPress默认评论框的同学来说,常常会遇到这样一个问题,就是当我们回复评论者消息的时候偶尔会搞不清楚到底是回复的谁,当然我们可以通过嵌套评论来区分不同的话题,但是当大家一块参与话题互相讨论的时候还是会分不清谁回复的谁...,这时候我们就可以通过@评论者来告诉对方我是在和你交流了。...网上关于此功能的实现方法很多,这里收集整理了两种亲测可用的方法推荐给大家。...将@信息写入数据库//添加@评论者功能function qgg_comment_add_at( $commentdata ) { if( $commentdata[\'comment_parent\'...return $commentdata;}add_action( \'preprocess_comment\' , \'qgg_comment_add_at\', 20);不将@信息写入数据库//添加@评论者功能

    67630
    领券