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

树形递归实现多级评论

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

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

django之评论系统及多级评论

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

6.7K61

php实现文章评论系统

最近工作中需要完成一个评论的功能,上网查找了几个评论系统的展示样式。最后参考“多说”和“畅言”等评论系统,自己使用PHP语言实现了一个简单的评论系统。...并记录了两种方式(递归方式和非递归方式)的实现过程,以及分析两种方式的优缺点,但前端如何实现就没有展现了。...具体实现方案如下(在ThinkPHP框架上实现): 1、递归方式 优点:实现代码简单,而且如果评论的层级固定在5个层次一下的话,建议使用该种方法,这样前端通过这种数据结果实现简单。...缺点:如果评论的层级没有固定的话,前端将无法展示评论信息了,而且如果层级太多的话,将会极大的消耗内存,更要命的是每次递归都得查询数据库,性能将大大的降低。...2、非递归方式(堆栈方式实现) 优点:只查询一次数据库,性能较好。可以实现n层级的评论,前端也能很好的展示 缺点:代码稍微复杂,对于固定的层级评论,前端展示评论较为复杂。

1.9K10

多级缓存实现方案

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

2K40

SpringBoot实现多级分类菜单

SpringBoot实现多级分类菜单 在做网站内容分类的时候,我们经常是需要详细到二级分类甚至三级分类的情况。 例如京东商城,他也会划分出很多级的分类出来。那么我们应该怎样设计出这样的一个效果呢。...mapper-locations: classpath://mapper/**/*.xml global-config: db-config: id-type: auto 由于我们本次只是想实现分类菜单的方法逻辑而已...,所以删除掉controller里面的所有方法,service里面的分页实现,这些我们都用不到的。...逻辑代码 在CategoryService接口中添加一个新的方法, List listWithTree(); 写它的实现类 在CategoryServiceImpl中,全部源代码如下...categoryService.listWithTree(); } } 启动CategoryApplication 访问http://localhost:8080/category/list/tree 可以看到多级分类的接口就已经写好了

8.7K21

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 样式 以上步骤已经实现了对菜单加入和取消

1.7K20

MongoDB实现评论

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

19610

javaweb项目连接MySQL数据库_php实现评论回复功能

Java+MySQL实现评论功能设计开发 一、背景 项目初始版本上线,有时间写点东西记录一下项目中的心得体会,通过这个项目学习了很多,要写下来的有很多,先从评论功能开始吧。...这些功能的实现依赖于数据库表的设计,所以,在开始设计的时候,要想清楚自己的项目需要哪些功能。...需要注意的是,在评论和回复数据较多的情况下做好分页处理。 四、程序的实现: 采用Java语言进行编程的实现,使用的SSM框架。...不足之处其一:在于获取评论的回复,每次读取数据的时候,需要遍历每一条评论,然后去查找这个评论下的所有回复,之后返回这些数据,这样就会造成获取一片文章的评论需要多次查找数据库,效率就会很低,下一步准备从数据库设计和程序实现两个方面去思考如何优化...;其二在于:所有文章的评论都在一张表里面,评论的回复也都在一张表里面,这样就会导致表的条目很多,下一步优化的思路集中于分表操作,具体的实现还在思考中。。。。

1.3K20

SharePoint 2013 实现多级审批工作流

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

2K90

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

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

26110

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

43230
领券