让我先简单解释一下这个问题。我最近开始接触网络开发。我知道现代 MVC 架构的比特和字节,并且已经在使用它。但是现在我正计划构建一个仪表板,我不知道如何去做。
传统的数据流是,它在后端从数据库加载,稍微处理并发送到前端响应。这就是我迄今为止所做的工作。
但是说到仪表盘,假设应该显示在仪表盘上的数据需要太多的处理。就像假设仪表板显示这个人到目前为止已经花费/赚了多少一样。
现在,添加一些背景上下文。如果应用程序是关于显示此人迄今为止在在线购物网站上花费了多少,它可能不需要太多处理。加载几百条记录可能没问题(也许!)。
但是,如果仪表板是关于显示盘中交易者到目前为止(自从他/她加入以来)花费/赚取了多少,那就太沉重了。在这种情况下,加载数万条记录并进行计算(加/减)会导致服务器负载。
在这种情况下,我正在考虑为报告创建一个单独的表格,并在必要时更新(例如:当用户执行新交易时)。然后简单地读取数据并将其发送到前端。此外,如果需要,可能会进行一些处理,但所有繁重的工作都已经完成。
这两个例子可以分为两类:
现在,我的问题是,“我应该始终使用第二种方法吗?”我有这个问题,因为如果处理太少,那么为报告创建单独的表只是浪费存储。所以,我能想到一些取舍。
现在,进入这个问题的第二部分。这部分是指我应该如何处理前端的数据更改。三种可能的方式是:
现在,谈谈我对这部分的看法。如果数据更改不那么频繁,即一天一次,则可以采用第一种方法。但我仍然不知道第二和第三个。另外,我是否应该使用数据流,谁能提供一些有关流与正常请求-响应周期有何不同的见解?我认为这可能与 websockets 或类似的东西有关,但我不知道。
PS:我目前使用 Django 作为我的后端,并计划使用 React/Vue 或类似框架作为我的前端。 (答案将与此无关,但仅供参考)
答案 0 :(得分:-1)
借助现代前端技术,是使用从服务器提取数据(定期更新)还是将数据推送到前端(即时/实时)并不重要。对于 angular 和 React,您应该查看 Observables,在前端使用它时,这两个选项的处理方式完全相同。
在事件驱动的前端,不管你如何获取数据,你将编写程序来处理“当我的数据到达时,我会做 XYZ”的事件
一般来说,最好将您的下一个问题分解为 1 或 2 个非常具体的问题。与其问一个带有“前端”、“后端”和“中间的一切”标签的非常广泛的问题,不如问几个针对每个方面的具体问题。