【发布时间】:2015-10-30 15:16:52
【问题描述】:
我正在我的基于 Node.js 的网络应用程序中导入 CSV。 大多数给定的 CSV 文件都有数万条记录,并且需要几分钟。
所以在导入完成之前,我想向用户显示“正在导入...”消息。
我要创建的类似于 Github 的分叉屏幕。按下 repo 右上角的 fork 按钮后,会显示“Forking / It should only take a few seconds”的消息。直到分叉完成。 另外,我想添加进度条来显示处理记录的百分比。
目前我的实现是:
- 客户端使用 CSV 数据发送请求
- 服务器进程收到 CSV 并将记录插入数据库。
- 如果 CSV 有效,服务器会响应 200。
但实施后用户无法看到当前状态。甚至有时socket会挂掉。
我正在考虑以下重新实现:
- 客户端使用 CSV 数据发送请求
- 服务器响应 200 告诉客户端已收到 CSV
- 服务器开始处理收到的 CSV 并将记录插入数据库。
但是,我不知道:
- 客户如何知道导入已完成
- 客户端如何知道 CSV 处理和 DB 插入何时发生错误
如何实现服务器端? 在此先感谢 ;)
【问题讨论】: