【问题标题】:Ajax: Getting Request Status And Update jProgressBarAjax:获取请求状态并更新 jProgressBar
【发布时间】:2012-06-20 18:45:03
【问题描述】:

我有一个任务是提取文件中的 zip 文件:Update.aspindex.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
%>

问题是当第一个 ajax 调用开始时,第二个 ajax 调用保持挂起直到第一个调用完成。

my ajax calls

【问题讨论】:

    标签: jquery ajax asp-classic progress-bar


    【解决方案1】:

    您遇到的问题是 ASP 处理器一次只能为特定会话处理一个脚本。因此,您对尝试获取进度的 asp 脚本的调用将在执行提取的 asp 脚本后面排队。

    我建议你这样做:假装它。您向执行提取的页面发出 ajax 请求。在提取时,您有一个使用计时器的纯 javascript 驱动的进度条。给它一些放松,这样一开始看起来进展很快,但随后呈指数级减慢。当 ajax 请求完成时,您可以在移除进度条之前简要显示进度条。

    如果您可以获取 zip 的原始大小,则可以使用该图形来提高伪造进度条与现实之间的匹配度。如果此类提取发生得相当频繁,您可以通过记录提取各种 zip 文件所需时间的一些统计数据来进一步了解这一点,以获得一些风味时间与字节的比率。

    最终,您的用户想要一种温暖而模糊的感觉,即某事正在发生,而上述实现了这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2018-11-16
      • 2016-08-07
      • 2012-10-15
      • 2012-03-09
      • 2020-08-09
      • 2011-05-09
      相关资源
      最近更新 更多