该如何实现嵌套评论

发布于 2022-08-29 22:56:06 字数 687 浏览 27 评论 0

想实现类似这样的效果:
图片描述

图片描述
定义了这样一张表.. parent 字段值为上层评论 ...自己想到的办法:

<s2:iterator value="comments" id="s"> // 首先循环输出顶层
<s2:if test="parent == 0">  // id 为0 为顶层评论
xxxxx
<s2:iterator value="comments" id="z">  // 然后再一次循环这个list
<s2:if test="#s.id == #z.parent"> 
xxxx   // 如果判断有存在parent字段等于顶级评论的id字段
</s2:if>
</s2:iterator>
</s2:if>
</s2:iterator>

大概这样..感觉思路有点乱.. 明显效率也很低 重复去循环那么多次.
请问各位又没有比较好的实现办法.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

妞丶爷亲个 2022-09-05 22:56:06

分情况

wordpress 模式的嵌套评论

例子 http://i.mouto.org/#talk
- 取出某pid下全部评论
- 遍历有parent的评论插到上级评论下,在当前位置删除
- 把当前树形整理成html输出

网易新闻模式 的评论引用模式

这个模式的话
- 取出某pid下全部评论
- 遍历有parent的评论插到上级评论下
- 把当前树形整理成html输出

美胚控场 2022-09-05 22:56:06

能想到的思路是,js循环生成DIV,从最顶层的DIV开始生成,下一个DIV为当前DIV的高度翻倍,宽度增加一定量。然后通过css来控制DIV重叠和文字贴紧底部。

意中人 2022-09-05 22:56:06

第一个你可以改用nosql存储,数据结构相对可控性比较强。

第二个即使你用mysql 关系型数据库,也可以做延迟加载啊,开始只要显示十来条就好了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文