Javascript 服务器更新的jQuery侦听器
我正在开发一个与服务器通信以更新其数据库的web应用程序。问题是一次大的更新可能需要几毫秒甚至几十秒的时间。我想在客户端引入一些监听器,它将等待服务器完成它的最后一项工作,并通知客户端强制刷新(所谓刷新,我指的是调用一个ajax函数,该函数向服务器请求新数据,销毁当前数据表并生成新数据表)。 直到现在,在对服务器数据库进行任何更改之后,我才在客户端调用刷新,但我更喜欢在客户端“灰显”表,直到它收到服务器的响应Javascript 服务器更新的jQuery侦听器,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在开发一个与服务器通信以更新其数据库的web应用程序。问题是一次大的更新可能需要几毫秒甚至几十秒的时间。我想在客户端引入一些监听器,它将等待服务器完成它的最后一项工作,并通知客户端强制刷新(所谓刷新,我指的是调用一个ajax函数,该函数向服务器请求新数据,销毁当前数据表并生成新数据表)。 直到现在,在对服务器数据库进行任何更改之后,我才在客户端调用刷新,但我更喜欢在客户端“灰显”表,直到它收到服务器的响应 我是jQuery领域的新手,有人能告诉我如何做到这一点吗 为什么不直接使用进行AJAX
我是jQuery领域的新手,有人能告诉我如何做到这一点吗 为什么不直接使用进行AJAX调用,然后挂接到deferred函数中呢。这样,当数据库更新完成时,就可以在
done()
函数中处理所有内容
例如:
$.ajax({
'type': 'get',
'url': 'update_db.php'
}).done(function() {
// The PHP has executed and the call has returned.
// 'Ungrey' your items here...
});
您可以定期轮询服务器以获取更新:
var job = $.Deferred();
var POLL_INTERVAL_MSEC = 5000;
var timer = setInterval( function() {
$.ajax('status/isfinshed').done( function( response ) {
if ( response.finished ) {
clearInterval( timer );
job.resolve();
}
});
} , POLL_INTERVAL_MSEC);
job.done( function() {
//success code
});