JSON 对象数组,每个对象包含每个类别的名称和子类别,依此类推
第一:名字很浅,可能会改变(随着时间的推移),可能不是唯一的,......
使用一些(永远唯一的) ID。一个节点列表,每个节点都包含它的名称(可能会更改或重复或其他)一个唯一的 ID,它是 parentID,以及您需要的任何其他数据。使用这些数据,您可以轻松地构建您的树。
“永远独一无二”,因为我还看到人们在结构更新后更改/清理 ID 以“消除间隙”、“ID 类似于节点的新顺序”,以及进一步的 BS。所有这些都冒着弄乱结构的风险,实际上也弄乱了,不得不手动修复它。
类别、子类别和子子类别的完整数量约为 100(每个都有唯一的名称)。这个完整的类别树的任何一个分支中的最高节点数约为 10。我只需要显示这些分支中任何一个分支中每个节点的名称以及一张图像。
根据我的经验,这个计算并不适合我。
乍一看,总共 100 个节点听起来并没有太多数据无法一次批量获取,但这仍然取决于您的节点包含多少额外数据。
没有加起来/听起来很奇怪的部分对我来说:
所以基本上:
要么应该有超过 100 个节点,每个类别>2 级别(最多) 10 个节点,
要么你很少使用提到的 10 个节点并且嵌套太多。
- 最后,假设它将始终保持总共 100 个节点。根据我自己的经验,这类事情往往会“扩展”超出最初定义的“绝对”;) 限制。
我有一个项目,我必须构建一个 UI 来管理一组组的此类类别树的权限。最初,这是为 10 个组和总共 30 个(嵌套)类别设计的。因此(读取+更改权利)600 个值作为(几乎永远不会满足)UI 的“绝对”限制。
当我们达到 100 个嵌套类别和 30 多个组时,整个概念、实现和可用性完全失败,并且平均而言必须在该视图中呈现近 1000 个复选框。
长话短说,请记住,即使是绝对限制也可能不是那么绝对,并且将来可能会超过几个数量级,这可能会破坏您此时选择的任何概念。
也许这一切似乎离题了,但它可能会影响您决定解决问题的方式,因为您最了解项目的主题、扩展的潜力、如何与客户一起做出决策,......
只是重复我最初的评论:
您可以将第一批数据注入标记中,因此您不需要通过额外的调用来加载它。(作为 JSON,而不是预渲染的 HTML)
您可以在后台预加载子类别,以便用户单击链接/按钮后立即可用
您可以批量加载多个类别或级别以减少发出的请求数量
你可以结合所有这些,以及你最初的方法来满足你的需求
正如Bergi 已经提到的那样,所有这些在很大程度上取决于您的特殊用例,一般无法回答。这就是为什么我写了这么多我的想法,以帮助你做出反映决定。