Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 服务器更新的jQuery侦听器_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 服务器更新的jQuery侦听器

Javascript 服务器更新的jQuery侦听器,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在开发一个与服务器通信以更新其数据库的web应用程序。问题是一次大的更新可能需要几毫秒甚至几十秒的时间。我想在客户端引入一些监听器,它将等待服务器完成它的最后一项工作,并通知客户端强制刷新(所谓刷新,我指的是调用一个ajax函数,该函数向服务器请求新数据,销毁当前数据表并生成新数据表)。 直到现在,在对服务器数据库进行任何更改之后,我才在客户端调用刷新,但我更喜欢在客户端“灰显”表,直到它收到服务器的响应 我是jQuery领域的新手,有人能告诉我如何做到这一点吗 为什么不直接使用进行AJAX

我正在开发一个与服务器通信以更新其数据库的web应用程序。问题是一次大的更新可能需要几毫秒甚至几十秒的时间。我想在客户端引入一些监听器,它将等待服务器完成它的最后一项工作,并通知客户端强制刷新(所谓刷新,我指的是调用一个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
});