1

我正在开发一个网站,其中用户登录到他们的用户帐户,将数据输入到表中(我正在使用 Tabulator),然后保存表中的数据(我正在使用 MongoDB Atlas 进行数据存储)。网站有不同的子页面,其中数据与存储在另一个子页面中的其他数据交互(例如,网站有“销售”和“库存”子页面,因此当用户进行新销售时,库存将减少销售额)。基本上,这是一个用户不断对其数据执行 CRUD 操作的网站。

今天,该网站在客户端呈现。网站的每个子页面都有自己单独的 HTML 文件和单独的 Javascript 文件,其中一个 Node 文件用于处理所有子页面与 Atlas 的所有后端通信。我只使用一个或两个不同的用户帐户在本地 PC 上使用和测试网页,并且一切正常(每个用户保存并使用自己的数据)。

现在,考虑到我计划部署网站(到域或 Heroku),并可能获得成百上千不同的用户,我一直在研究这个选项:

  • 以我一直使用的方式继续使用简单的客户端 HTML。
  • 将 HTML 渲染为来自 Node 的响应
  • 从节点使用模板引擎

考虑到可扩展性,您会推荐哪个选项?

4

2 回答 2

0

你的问题很好,但它的答案几乎无法预测。将 Web 应用程序从少数用户增加到几千人总是会发现令人惊讶的性能瓶颈。

瓶颈会出现在原始下行带宽上吗?减少对 api 调用和页面请求的响应是否会有很大的收获?这是可能的,但 Heroku 和其他优秀的主机供应商在带宽方面做得很好。此外,https 在加密数据时会对其进行压缩,因此重复的 html 并不像看起来那么昂贵。因此,让您的服务器呈现大量 html 可能是可以接受的。

应用程序数据库接口会出现一些瓶颈吗?如果有大量数据和复杂的过滤标准在起作用,则很有可能。每个成功的网络应用程序都需要对其数据库保持警惕。对于目前无法想象的问题,您将不得不添加索引或开发不太优雅的解决方法。

您会在摄取数据的进程和使用数据的进程之间发生争用吗?大概。但这场争论的细节很难预测。

tl;博士。你有这个工作。现在没必要重做。部署你所拥有的。邀请您的用户,并听取他们的意见。注意它是如何执行的,并将你的调优和重构集中在它们被证明是必要的领域。

于 2020-03-29T02:49:53.220 回答
0

如果您更喜欢 React 框架,我建议您查看诸如nuxt js之类的 vue js 框架或next js项目。

AFAIK,它们结合了最好的服务器端和客户端渲染。

这两个框架用于构建具有各种有用特性的广泛应用程序。

考虑到您的需求,通用应用程序功能和服务器端渲染可能会帮助您实现所需的可扩展性。

这是一个来自数字海洋的教程,介绍了一个将 django 后端与 nuxt js 前端相结合的简单应用程序:如何使用 Nuxt.js 和 Django 构建通用应用程序

本文将为您介绍在您的 Web 应用程序中使用 nuxt js 的一些好处。

话虽如此,现在最好不要担心可扩展性。这是初创公司失败的主要原因之一。首先专注于为您的客户(用户)问题构建解决方案,并在需要时进行扩展。

于 2020-03-29T01:44:25.317 回答