我正在构建一个在ASP .NET Core 2.2中生成excel文件的应用程序。 Excel的生成可能需要一些时间,具体取决于用户的需求。 (就像有时一样,最多20到30秒)。
我的问题是:如何在不阻止用户导航的情况下运行这一代? 就像,用户可以开始生成文件,然后继续在网站上导航,然后稍后回来下载生成的文件。这样做的方式是什么?
答案 0 :(得分:3)
在后台任务中运行生成。生成excel文件的名称,然后将关系保存到DB或tokken中(取决于您的需求)。当线程将在db中生成excel文件更新状态时。您可以通知用户或让用户查看特定页面上的信息。还有很多方法可以做到...
答案 1 :(得分:1)
与C#有关的技术性问题不多,但更像UX问题。
您可以保留一个按钮,用户可以单击该按钮请求生成所述文件。您运行接收到此类请求的服务,然后开始处理。
服务开始生成时,页面仅显示一条消息,提示“请稍候,正在生成...”。
完成后,将页面内容更改为允许用户下载的链接。
答案 2 :(得分:0)
在JS中,您可以打开一个新标签,然后将在此新标签中处理excel文件。
或者,您可以在服务器上创建excel文件(显示其当前正在创建),而不会阻止导航,并且当用户返回到生成页面时,如果找到了文件,则可以将其下载。