我的任务是在文件中提取zip文件:Update.asp
如何在index.asp
上启动任务后更新jquery进度条。
我找到了一个在index.asp上使用2 ajax调用的解决方案。一个用update.asp
启动任务,另一个用session("progress_status")
得到update.asp
当每个提取文件在<%
session("progress_status") = 0
'file 1 extracted
session("progress_status") = 50
'file 2 extracted
session("progress_status") = 100
%>
上完成时,此会话发生变化
{{1}}
问题是当第一次ajax呼叫开始时,第二次ajax呼叫保持挂起,直到第一次呼叫结束。
答案 0 :(得分:0)
您遇到的问题是ASP处理器一次只处理特定会话的一个脚本。因此,您对尝试获取进度的asp脚本的调用将在执行提取的asp脚本后面排队。
我建议你这样做:伪造它。您对执行提取的页面发出ajax请求。虽然它提取你有一个纯粹的javascript驱动进度条使用计时器。给它一些缓和,这样一开始看起来很快就会进展,但随后会呈指数级减速。当ajax请求完成后,您可以在删除之前简要地将进度条显示为已完成。
如果您可以获得拉链的原始尺寸,您可以使用该图来改善伪造进度条与现实之间的匹配。如果通过记录一些时间来提取各种zip文件以获得一些风味时间与字节比率,这些提取经常发生,你可以更进一步。
最终,您的用户希望感受到某种情况正在发生的温暖模糊感觉以及上述情况。