3

我正在尝试制作一个进度条来更新用户 AJAX 调用的进度。

我的直接想法是我需要一个 AJAX 调用来启动服务器上的一个线程,允许开始的 AJAX 调用完成,并允许线程将更新发送回用户。

为简单起见,忽略实际的进度条功能(我正在考虑实现其中一个 JS 条,具有精美的颜色和效果;),但如果我可以从线程获取更新,则更新一个简单的 JS 进度条变得微不足道;))

我只需要一些关于如何做到这一点的指示,如果有人能答应我吗?;)

4

1 回答 1

3

问题的关键是从服务器获得完成的工作百分比。唯一的出路是每 x 秒轮询一次服务器。有几种方法,

  1. 使用 ajax 启动 httphandler(同步或异步)调用。
  2. [轮询] 使用ASP.NET 计时器控件每 x 秒刷新一次更新面板。

或者

http://encosia.com/2007/07/25/display-data-updates-in-real-time-with-ajax/

或使用 jquery 进行轮询。

以“t”间隔轮询服务器并获取状态。为此,我们需要以“t”间隔调用一个函数,该函数将启动对 HTTPHandler 的 AJAX 调用以获取状态。

$(function() { 
  setInterval(update, 't'); 
}); 

function updateStatus() { 
  $.ajax({ type: "POST",  url: "GetStatusHandler.ashx", 
       contentType: "text/html; charset=utf-8", 
       dataType: "html",   
       success: function(data) { UpdateStatus - Update some progressbar plugin } 
       }); 
} 

因此,您将拥有两个 httphandler,一个用于启动进程,另一个用于获取状态。

你可以研究这些,看看什么更适合你。

于 2010-04-14T07:24:23.310 回答