我正在尝试制作一个进度条来更新用户 AJAX 调用的进度。
我的直接想法是我需要一个 AJAX 调用来启动服务器上的一个线程,允许开始的 AJAX 调用完成,并允许线程将更新发送回用户。
为简单起见,忽略实际的进度条功能(我正在考虑实现其中一个 JS 条,具有精美的颜色和效果;),但如果我可以从线程获取更新,则更新一个简单的 JS 进度条变得微不足道;))
我只需要一些关于如何做到这一点的指示,如果有人能答应我吗?;)
我正在尝试制作一个进度条来更新用户 AJAX 调用的进度。
我的直接想法是我需要一个 AJAX 调用来启动服务器上的一个线程,允许开始的 AJAX 调用完成,并允许线程将更新发送回用户。
为简单起见,忽略实际的进度条功能(我正在考虑实现其中一个 JS 条,具有精美的颜色和效果;),但如果我可以从线程获取更新,则更新一个简单的 JS 进度条变得微不足道;))
我只需要一些关于如何做到这一点的指示,如果有人能答应我吗?;)
问题的关键是从服务器获得完成的工作百分比。唯一的出路是每 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,一个用于启动进程,另一个用于获取状态。
你可以研究这些,看看什么更适合你。