gpt4 book ai didi

javascript - 将 node.js 服务器 javascript 处理移动到客户端

转载 作者:行者123 更新时间:2023-11-30 13:24:08 25 4
gpt4 key购买 nike

我想就将传统上在服务器上完成的处理转移到 node.js 网络应用程序中的客户端来处理的实际影响提出一些意见。

示例案例研究:用户上传一个 CSV 文件,其中包含他们一年的银行对账单条目。我们要解析文件,对每个条目进行分类并计算每个类别的累积值,以便我们可以将新分类的报表存储在数据库中并向用户显示支出分析。

条目按描述中的匹配字符串分类。类别和条目很多,处理起来需要相当长的时间。

在我们的 node.js 服务器中,我们可以愉快地释放事件循环,同时等待网络响应等,但是如果有任何数据处理或类似处理,服务器将被阻止响应请求,这似乎不可避免。

传统上,CSV 文件会被传递到服务器,服务器会处理,保存在数据库中,并将处理的输出发回。

在我们的单线程 node.js 服务器中,这个处理由浏览器处理,输出显示并发送到服务器进行存储似乎是有意义的。当然,客户端必须等待完成,但它们的处理不会阻止服务器响应来自其他客户端的请求。

我很想知道是否有人有过使用此模型构建应用程序的经验。

所以,问题是.. 让浏览器而不是服务器处理任何可能阻塞事件循环的处理是否有任何问题?这是 node.js 应用程序开发的好/明智/可行的方法吗?

最佳答案

我认为信任客户端处理的数据不是一个好主意。

相反,您应该考虑创建一个单独进程监听的工作队列,将 CPU 密集型任务与处理 HTTP 请求的 node.js 进程分开。


我建议的数据流是:

  1. HTTP 上传请求
  2. 应用服务器(将原始文件保存在工作进程可以访问的地方)
  3. 通知“csv”工作队列
  4. 工作人员处理上传的 csv 文件。

关于javascript - 将 node.js 服务器 javascript 处理移动到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com