AJAX要求阻止用户界面上的进度可视化

我的项目是关于创build数千个项目的报告,并将这些报告作为Excel文件下载。 此时,客户必须等待屏蔽前的屏幕,直到从数据库中读取项目并填充到Excel文件中,直到准备好下载为止。

问题是当我有大约4000个项目(每个项目有大约10个值),有时需要大约7-10分钟(取决于项目的数量)来完成整个过程。 屏幕通过BlockUI.js工具(外部代码)被阻止。

为了更好的回应,我想在这个屏蔽的屏幕上有进度信息。 目前看起来像这样:

在这里输入图像说明

我必须告诉你,我使用AJAX,JQuery和JSON是不好的。 我知道我可以或者必须使用Response.Write()但我真的不知道如何在AJAX中捕获这些响应。

接下来的问题是 – 查询数据库和创buildExcel工作表的整个过程是在一个单独的.cs文件中完成的,而不是在.aspx页面后面的代码中。

在这里输入图像描述

所以当没有Response.Write()我怎么得到这个网站目前正在做的信息?

一步一步的网站/服务器是这样做,而创build一个报告:

  1. first method to get the items from DB 2. quering a few additional information for each item from DB 3. filling the DataTable with each item 4. second method to get other items from database 5. like 2. 6. like 3. 7. third method to get the last special items from DB 8. like 2. 9. like 3. 10. creating the Excel sheet 11. filling the Excel sheet 12. ready for download (BlockUI sets the screen free) 

在C#区域看起来像

在这里输入图像说明

而已。 我想要或需要的是一种带有文字的进度条,向客户显示程序目前正在做什么 – 我如何以最正常的方式意识到这一点?