我有一个ASP.net页面,使用eeplus库(http://epplus.codeplex.com/)创建一个excel文件。我的问题是我创建了一个非常大的文件。需要时间才能完成并向客户展示。我搜索一种方式来展示创作的一种进度条。
目前,客户端点击并等待文件创建,所以我无法真正展示一些东西。
答案 0 :(得分:0)
快速解决方案是使用Ajax.NET UpdateProgress
控件。只需显示在服务器处理时旋转的GIF。
答案 1 :(得分:0)
你要做的事实上非常复杂。你可能只想展示一个旋转轮gif或其他东西,并为自己省去头痛。
但是,如果您喜欢冒险,请继续阅读。
要使用进度条,您需要创建一种方法来衡量完成任务的百分比。这通常涉及某种增量器,它可以根据您正在创建的行/列/总数进行测量。我不知道你正在使用什么语言,所以这里有一些伪的帮助你:
var totalRows = 100;
var processedRows = 0;
var progress = 0;
while( processedRows < totalRows ){
Process_A_Row();
processRows++;
progress = processedRows / totalRows;
StoreProgressSomewhereForPolling();
}
因此,您有跟踪进度的基本机制。在客户端上,您需要设置一种方法来轮询progress变量的值。这会变得混乱,因为您很快就会发现需要一种方法来隔离每个请求的进度变量。由您决定如何实现这一点 - 有很多方法可以做到这一点。我看到的一个解决方案是将进度值存储在一个由用户名密钥控制的静态字典中,以便客户端可以使用webmethods轻松查询它。