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

时间:2014-08-12 19:02:13

标签: javascript php graph frontend backend

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

前端优点:

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

前端缺点:

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

后端优点:

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

后端缺点

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

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

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

3 个答案:

答案 0 :(得分:7)

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

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

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

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

答案 1 :(得分:0)

如果后端能够进行转换,那么理想情况下,客户端可以选择获取原始或格式化输出。两全其美?

答案 2 :(得分:0)

  • 昂贵的计算或任何形式的图形计算都应在后端进行。即使后端最终消耗了更多的内存或cpu,您也可以通过根据CPU,响应时间,内存等来缩放/自动缩放后端服务器来进行控制。
  • 如果前端进行计算并假设它具有数月之久的数据点,则处理将在您的应用程序也无法控制的客户端浏览器应用程序上进行。对于同时播放多个浏览器标签或应用的用户而言,尤其是这种情况。
  • 如果所有计算均在后端完成,则调试或指出问题的难度将变得更容易。