Javascript 图形数据应该在后端还是前端生成?
我最近在办公室里进行了一次讨论,讨论是提供通过内部后端api准备的图形数据,还是提供通用数据并在前端解析为图形格式。以下是我从团队收集的基本笔记: 前端优点:Javascript 图形数据应该在后端还是前端生成?,javascript,php,graph,frontend,backend,Javascript,Php,Graph,Frontend,Backend,我最近在办公室里进行了一次讨论,讨论是提供通过内部后端api准备的图形数据,还是提供通用数据并在前端解析为图形格式。以下是我从团队收集的基本笔记: 前端优点: 数据以通用格式从后端传输 因为数据是通用形式的,所以可以使用任何图形呈现前端。只要编写了解析器方法 前端缺点: 前端需要包含某种解析器,以便将通用数据转换为实际的图形数据 后端优点: 数据可以以正确的格式提供,无需前端解析 后端Cons 锁定我们可以使用的图形库 这似乎是一个非此即彼的场景,但我想问这个问题以获得任何其他可
- 数据以通用格式从后端传输
- 因为数据是通用形式的,所以可以使用任何图形呈现前端。只要编写了解析器方法
- 前端需要包含某种解析器,以便将通用数据转换为实际的图形数据
- 数据可以以正确的格式提供,无需前端解析
- 锁定我们可以使用的图形库
后端指的是RESTAPI,前端指的是web应用程序(Javascript)。如果后端能够进行转换,那么理想情况下,客户端可以选择获取原始或格式化的输出。两全其美?要在列表中添加更多内容,您可以考虑以下几点
- 在后端序列化和操作数据会使用更多的RAM,因为所有数据都是首先加载到内存中的
- 为了保持后端的标准化和结构化,您应该只通过RESTAPI访问资源。在如此大的范围内操作数据对您的API没有实际价值
- 使用前端操作数据将使用更多的本机资源,从而在创建“图形”数据时节省服务器的大量处理和ram。图形将以本机速度渲染,而不是挂在服务器上首先构建它
- 除非你编写的应用程序经常面临被劫持/黑客攻击的威胁(比如银行)。你真的不需要担心其他人写他们自己版本的图表。它花费了太多的时间,并不是你需要考虑的对业务/应用的一个可行的威胁。
PS 我建议只使用后端RESTAPI作为数据库/资源公开,而不使用太多的应用程序逻辑 您的JS应用程序应该处理所有数据操作,以构建它试图传递的任何信息。
- 昂贵的计算或任何类型的图形计算都应该在后端进行。即使后端最终消耗了更多内存或cpu,您也可以通过基于cpu、响应时间、内存等调整/自动调整后端服务器的大小来控制这一点
- 如果前端进行计算,并假设它有数年或数月的数据点,则处理将在客户端的浏览器应用程序上进行,而您的应用程序也无法对其进行控制。对于同时使用多个浏览器选项卡或应用程序的用户来说,这种情况尤其明显
- 如果所有计算都在后端完成,则调试或定位问题会更容易