图形数据是在后端生成还是前端生成?
Should graph data be generated in the back end or front end?
我最近在办公室讨论,是提供通过我们内部后端api准备的图形数据,还是在前端提供通用数据并解析为图形格式。以下是我从我的团队收集的基本笔记:
前端优点:
- 数据以通用格式从后端传输
- 由于数据是通用形式,因此可以使用任何图形渲染前端。如果解析器方法被写入
前端缺点:
- 前端需要包含某种类型的解析器,将通用数据转换为实际的图形数据
后端优点:
- 数据可以以正确的格式提供,而不需要前端解析
后台管理
- 锁定我们可以使用的图形库
这似乎是一个非此即彼的场景,但我想问这个问题,以获得任何其他可能的见解。
后端是指REST API,前端是指web应用程序(Javascript)。
要在您的列表中添加更多内容,您可以考虑以下内容:
- 在后端序列化和操作数据使用更多的RAM,因为所有的数据都首先加载到内存中。
- 为了保持你的后端标准化和结构化,你应该只通过REST API访问资源。如此大规模地操作数据对你的API没有真正的价值。
- 使用前端操作数据将使用更多的本地资源,因此节省了服务器在创建"图形"数据时的处理和内存堆。图形将以本地速度渲染,而不是挂在服务器上首先构建它。
- 除非你正在编写不断受到劫持/黑客威胁的应用程序(如银行)。你真的不需要担心别人会写他们自己版本的你的图表。它需要花费太多时间,并且不是您需要考虑的对业务/应用程序的可行威胁。
希望我帮了点忙。
p
我建议使用后端REST API仅作为数据库/资源公开,而不包含太多的应用程序逻辑。
你的JS应用程序应该处理所有的数据操作,以构建它试图传达的任何信息。
- 昂贵的计算或任何类型的图形计算应该在后端进行。即使后端最终消耗更多的内存或cpu,您也可以通过基于cpu,响应时间,内存等扩展/自动扩展后端服务器来控制它。
- 如果前端做计算,假设它有几年或几个月的数据点,处理发生在客户端的浏览器应用上,而你的应用也无法控制。对于那些同时玩多个浏览器标签或应用程序的人来说,这尤其适用。
- 如果所有的计算都在后端完成,调试或定位问题会更容易。
如果后端能够进行转换,那么理想情况下客户端可以选择获得原始输出或格式化输出。两全其美?
相关文章:
- 如何使用python后端和web前端提供braintree客户端令牌
- 让 WebStorm 识别后端和前端 JavaScript 文件
- 如何清晰地分离前端和后端逻辑
- 如何在前端和后端之间共享TypeScript/JavaScript
- 了解代码如何从前端流到后端
- 如何为REST API后端构建REST客户端前端
- CRUD api-连接前端和后端
- AngularJS在前端的后端web框架角色是什么
- 将https与在同一主机上运行的解耦的前端和后端MEAN应用程序结合使用
- 数据应该在后端还是前端进行格式化
- Java后端和JavaScript前端,如何加入
- 如何将前端模型与后端数据库同步
- 如何将数据从 AngularJS 前端传递到 Nodejs 后端
- 无法在 ExpressJS 中对前端和后端使用多个静态路径
- 使用主干作为前端和nodejs作为后端的网站
- 前端和后端的电子邮件验证解决方案
- 如何将CSRF令牌从AngularJS前端发送到Spring REST服务后端
- 考虑日期,数字格式跨C#(后端)和JS(前端)
- 从node.js后端控制前端javascript
- 将前端魔法条与后端同步