我正在尝试创建一个进度条,用于更新用户对AJAX调用的进度。
我的直接想法是我需要一个AJAX调用来启动服务器上的一个线程,允许启动AJAX调用,并允许线程将更新发送回用户。
为了简单起见,忽略了实际的进度条功能(我正在考虑实现其中一个JS条,带有奇特的颜色和效果;)但是如果我可以从线程获得更新,那么更新一个简单的JS进度条变得微不足道;))
如果有人可以强迫我,我只需要一些关于如何实现这一点的指示? ;)
答案 0 :(得分:3)
问题的症结在于从服务器获得完成工作的百分比。唯一的出路是每隔x秒轮询一次服务器。有几种方法,
OR
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,一个用于启动其他进程以获取状态。
你可以研究这些,看看哪些更适合你。