应该在后端还是前端生成图形数据?

big*_*ill 6 javascript php frontend graph backend

我最近在办公室里一直在讨论是否提供通过我们的内部后端api准备的图形数据,还是提供通用数据并解析前端的图形格式.以下是我从团队中收集的基本笔记:

前端优点:

  • 数据以通用格式从后端传输
  • 由于数据采用通用形式,因此可以使用任何图形渲染前端.提供了一个解析器方法

前端缺点:

  • 前端需要包含某种解析器,以将通用数据转换为实际的图形数据

后端优点:

  • 可以以正确的格式提供数据,从而无需进行前端解析

后端缺点

  • 锁定我们可以使用的图库

看起来好像是一个/或场景,但我想问这个问题以获得任何其他可能的见解.

后端我的意思是REST API,而前端我的意思是网络应用程序(Javascript).

Zan*_*man 7

要在列表中添加更多内容,您可以考虑以下因素.

  • 在后端中序列化和操作数据使用更多RAM,因为所有数据都首先加载到内存中.
  • 为了保持后端的标准化和结构化,您应该只通过REST API访问资源.如此大规模地处理数据对您的API没有实际价值.
  • 使用前端来操作数据将使用更多的本机资源,因此可以节省服务器的大量处理和ram来创建"图形"数据.该图将以原生速度呈现,而不是在服务器上挂起以首先构建它.
  • 除非您编写的应用程序经常受到被劫持/黑客攻击(如银行).你真的不需要担心别人写你自己的图形版本.这需要花费太多时间,而且您不需要考虑对业务/应用程序可行的威胁.

希望我帮了一下.
PS

我建议使用后端REST API作为数据库/资源​​暴露,而没有太多的应用程序逻辑.

您的JS应用程序应该处理所有数据操作,以构建它试图传达的任何信息.


小智 5

  • 昂贵的计算或任何类型的图形计算都应该在后端进行。即使后端最终消耗更多内存或 CPU,您也可以通过根据 CPU、响应时间、内存等扩展/自动扩展后端服务器来控制它。
  • 如果前端进行计算并假设它有数年和数月的数据点,则处理发生在客户端的浏览器应用程序上,您的应用程序也无法控制。对于同时播放多个浏览器选项卡或应用程序的人来说尤其如此。
  • 如果所有计算都在后端完成,则调试或定位问题会更容易。