获取总类别树(所有类别及其子类别的列表)v.s 根据需要获取每个分支?
Fetching a total category tree (a list of all categories and their sub-categories) v.s fetching each branch as it is needed?
我不确定我的术语是否完全正确,但我的问题围绕着显示类别、子类别和子子类别列表的目标展开。
类别、子类别和子子类别的总数约为 100 个(每个都有唯一的名称)。这个完整类别树的任何分支中的节点数最多是 10 个左右。我 只 需要显示这些分支中任何一个分支中每个节点的名称以及图像。
在我开发的UI类型中,这些不同的列表永远不会同时出现。
例如,当您单击 categories
列表中的 category
时,类别列表会消失,然后您应该会看到该类别的 sub-categories
列表。当您单击 sub-category
时,子类别列表消失,然后您会看到属于最近单击的 sub-category
的 sub-sub-categories
列表,依此类推。
知道这一点,我的问题是:
初始获取 'category-tree' 基本上可以是一个 JSON 对象数组,每个对象都包含每个类别的名称和子类别等等,这有什么缺点吗? (只需保留此类别树数据即可呈现我需要的任何列表)
或
我是否应该对 仅 初始类别进行初始抓取,然后在他们单击某个类别后再次抓取子类别列表,依此类推? (只在我需要的时候获取我需要的)
array of JSON objects, each containing the names and sub-category's of each category and so on
首先:名字很浅,可能会改变(随着时间的推移),可能不是唯一的,...
使用一些(永远独一无二) ID。一个节点列表,每个节点都包含它的名称 (可能会更改或重复或其他) 一个唯一 ID,它是 parentID,以及您需要的任何其他数据。使用这些数据,您可以轻松构建您的树。
"forever to be unique",因为我也看到有人 changing/cleaning 在结构更新到 "remove gaps"、"IDs resemble the new order" 节点和进一步的 BS 后增加了 ID。
所有这些都冒着弄乱结构的风险,实际上也搞砸了,必须手动修复它。
The complete number of categories, sub-categories, and sub-sub categories is around 100 (each having a unique name). The highest number of nodes in any branch of this complete tree of categories is around 10. I only need to display the names of each node in any one of these branches as well as an image.
根据我的经验,这个计算对我来说不成立。
乍一看,总共 100 个节点听起来并不足以一次性获取太多数据,但这仍然取决于您的节点包含多少额外数据。
对我来说没有添加up/sounds奇怪的部分:
100 总节点数 / 10 每个类别的节点数
-> sub-sub-nodes你提到了?
或者,如果你真的像我听起来的那样有很深的嵌套,而你总共只有 100 个节点
-> 每个类别平均可能有 3-5 个节点(基于直觉的数字)
从 usability/users 的角度来看,这听起来像是嵌套太多而节点太少。因此在我到达目的地之前点击(和等待)太多。
您应该考虑 reorganizing/flattening 您的结构。
所以基本上:
要么总共有超过 100 个节点 (最多) 每个类别 10 个节点 >2 个级别
或者你很少使用提到的10个节点并且嵌套太多。
- 最后,假设它将始终保持总共 100 个节点。根据我自己的经验,这类事情往往 "expand" 超出了最初定义的 "absolute" ;) 限制。
我有一个项目,我必须构建一个 UI 来管理一组组对此类类别树的权限。最初,这是为大约 10 个组和总共 30 个(嵌套)类别设计的。因此(阅读+更改)600 个值作为 UI 的(几乎永远不会满足)"absolute" 限制。
当我们达到 100 个嵌套类别和 30 多个组并且平均必须在该视图中呈现近 1000 个复选框时,整个概念、实现和可用性完全失败。
长话短说,记住即使是绝对限制也可能不是那么绝对,将来可能会超过几个数量级,这可能会破坏您此时选择的任何概念。
也许所有这些看起来都离题了,但它可能会影响您决定解决问题的方式,因为您最了解项目的主题、扩展的潜力、如何与客户一起做出决策,.. .
重复我最初的评论:
您可以将第一批数据注入到标记中,这样您就不需要通过额外的调用来加载它。 (作为 JSON,而不是作为 pre-rendered HTML)
您可以在后台预加载 sub-categories,因此只要用户点击 link/button
,它们就可用
您可以bulk-load多个类别或级别以减少请求数量
你可以结合所有这些,以及你的初始方法来满足你的需要
并且正如 Bergi 已经提到的,所有这些在很大程度上取决于您的特殊 use-case 并且无法一概而论。这就是为什么我写了这么多我的想法,以帮助您做出反思的决定。
我不确定我的术语是否完全正确,但我的问题围绕着显示类别、子类别和子子类别列表的目标展开。
类别、子类别和子子类别的总数约为 100 个(每个都有唯一的名称)。这个完整类别树的任何分支中的节点数最多是 10 个左右。我 只 需要显示这些分支中任何一个分支中每个节点的名称以及图像。
在我开发的UI类型中,这些不同的列表永远不会同时出现。
例如,当您单击 categories
列表中的 category
时,类别列表会消失,然后您应该会看到该类别的 sub-categories
列表。当您单击 sub-category
时,子类别列表消失,然后您会看到属于最近单击的 sub-category
的 sub-sub-categories
列表,依此类推。
知道这一点,我的问题是:
初始获取 'category-tree' 基本上可以是一个 JSON 对象数组,每个对象都包含每个类别的名称和子类别等等,这有什么缺点吗? (只需保留此类别树数据即可呈现我需要的任何列表)
或
我是否应该对 仅 初始类别进行初始抓取,然后在他们单击某个类别后再次抓取子类别列表,依此类推? (只在我需要的时候获取我需要的)
array of JSON objects, each containing the names and sub-category's of each category and so on
首先:名字很浅,可能会改变(随着时间的推移),可能不是唯一的,...
使用一些(永远独一无二) ID。一个节点列表,每个节点都包含它的名称 (可能会更改或重复或其他) 一个唯一 ID,它是 parentID,以及您需要的任何其他数据。使用这些数据,您可以轻松构建您的树。
"forever to be unique",因为我也看到有人 changing/cleaning 在结构更新到 "remove gaps"、"IDs resemble the new order" 节点和进一步的 BS 后增加了 ID。 所有这些都冒着弄乱结构的风险,实际上也搞砸了,必须手动修复它。
The complete number of categories, sub-categories, and sub-sub categories is around 100 (each having a unique name). The highest number of nodes in any branch of this complete tree of categories is around 10. I only need to display the names of each node in any one of these branches as well as an image.
根据我的经验,这个计算对我来说不成立。
乍一看,总共 100 个节点听起来并不足以一次性获取太多数据,但这仍然取决于您的节点包含多少额外数据。
对我来说没有添加up/sounds奇怪的部分:
100 总节点数 / 10 每个类别的节点数
-> sub-sub-nodes你提到了?或者,如果你真的像我听起来的那样有很深的嵌套,而你总共只有 100 个节点
-> 每个类别平均可能有 3-5 个节点(基于直觉的数字)
从 usability/users 的角度来看,这听起来像是嵌套太多而节点太少。因此在我到达目的地之前点击(和等待)太多。 您应该考虑 reorganizing/flattening 您的结构。
所以基本上:
要么总共有超过 100 个节点 (最多) 每个类别 10 个节点 >2 个级别
或者你很少使用提到的10个节点并且嵌套太多。
- 最后,假设它将始终保持总共 100 个节点。根据我自己的经验,这类事情往往 "expand" 超出了最初定义的 "absolute" ;) 限制。
我有一个项目,我必须构建一个 UI 来管理一组组对此类类别树的权限。最初,这是为大约 10 个组和总共 30 个(嵌套)类别设计的。因此(阅读+更改)600 个值作为 UI 的(几乎永远不会满足)"absolute" 限制。
当我们达到 100 个嵌套类别和 30 多个组并且平均必须在该视图中呈现近 1000 个复选框时,整个概念、实现和可用性完全失败。
长话短说,记住即使是绝对限制也可能不是那么绝对,将来可能会超过几个数量级,这可能会破坏您此时选择的任何概念。
也许所有这些看起来都离题了,但它可能会影响您决定解决问题的方式,因为您最了解项目的主题、扩展的潜力、如何与客户一起做出决策,.. .
重复我最初的评论:
您可以将第一批数据注入到标记中,这样您就不需要通过额外的调用来加载它。 (作为 JSON,而不是作为 pre-rendered HTML)
您可以在后台预加载 sub-categories,因此只要用户点击 link/button
,它们就可用
您可以bulk-load多个类别或级别以减少请求数量
你可以结合所有这些,以及你的初始方法来满足你的需要
并且正如 Bergi 已经提到的,所有这些在很大程度上取决于您的特殊 use-case 并且无法一概而论。这就是为什么我写了这么多我的想法,以帮助您做出反思的决定。