树形数据前端生成还是后台生成返回比较好?
树形数据生成,存在这样的需求,通常是因为数据库是以线性表的形式保存数据,通过 parent 关系来记录树形结节关系;而前端呈现的时候需要把它转换成结构化的树形数据。
那么从数据库到前端组件,经过了哪些处理过程呢?最简单的情况:
也就是简单的前/后端两个点。这两个点都可以做线性数据向结构化数据的转换,所以有此疑问到底该在哪里做?
在没有任何提效机制的情况下,后端做就意味着每一次请求(单指需要树形的),都需要去进行一次转换,如果有 1 万次请求,就要做 1 万次转换,服务器要承担这 1 万次计算负担。如果把这个转换过程放前端,实际会把这 1 万次请求产生的转换分散到每个客户端(浏览器)去,我认为可以简单的计算为:服务器性能要有客户端性能的 1 万倍才能达到相同的时间效果。
当然实际上不会产生这么大的差异,
这么说来,其实有很多点是可以做优化的。
结论……没有结论,不存在一定的哪一端处理更好,需要根据实际情况去分析优化。如果只是纯粹的想划分责任……那就看谁比较空吧。
8 回答4.6k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
3 回答4.1k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
8 回答3.6k 阅读
通常来说 生成树形结构 的处理过程放在后端是更合适的,数据量大的情况下,后端能将数据成最终状态是最理想的,前端请求数据已经经历了一次耗时的 http,如果请求到数据还需要做 结构 上的处理的话显然不太合适: