在服务器和客户端之间交流进度

本文关键字:之间 服务器 客户端 | 更新日期: 2023-09-27 18:28:36

我有一个控制器操作,它将上传的excel文件导入数据库。导入可能需要几分钟时间。如何向客户端报告导入进度?我知道我必须使用ajax,但我找不到任何干净的代码来报告进度。

我是mvc4和asp.net的新手。所以我想听听你的建议/方法来解决我的问题。我想写一个坚实而干净的解决方案,但我真的不知道如何开始。

如果有人能有任何经验向客户报告进展,那就太好了。

在服务器和客户端之间交流进度

一个简单的方法是让上传方法(开始处理)返回正在运行的作业的ID。然后使用该ID查询作业状态。

我强烈建议使用plupload插件。此插件适用于所有浏览器,并具有进度条

如果通过作业将数据导入MSSQL,则可以使用脚本监视作业的状态,直到作业完成。如果客户需要知道导入记录的百分比,您可以从excel表中检索要导入的行数,并将其与表中的总行数进行比较。然后,您可以报告已导入的行的百分比。

然而,如果不是简单地导入一个表,而是导入多个表,这可能会变得棘手。在这种情况下,将由您计算出预期添加的行数,并根据当前导入监控所有这些行。

一旦你弄清楚了这一点,根据返回的数据向用户提供状态栏就不会太难了。