jQuery侦听器以获取服务器更新

jQuery listener for a server update

本文关键字:服务器 更新 获取 侦听器 jQuery      更新时间:2023-09-26

我正在开发一个web应用程序,该应用程序与服务器通信以更新服务器的数据库。问题是,一次大更新可能需要几毫秒甚至几十秒的时间。我想在客户端介绍一些监听器,它会等待服务器完成它的最后一项工作,并通知客户端强制刷新(我所说的刷新是指调用一个ajax函数,该函数会向服务器请求新数据,破坏当前数据表,并生成一个新表)。到目前为止,在对服务器数据库进行任何更改后,我只是在客户端调用了刷新,但有一些延迟,但我更喜欢"灰显"客户端的表,直到它得到服务器的响应。

我是jQuery领域的新手,有人能告诉我如何实现这一点吗?

为什么不使用$.ajax()进行AJAX调用,然后挂接延迟的done()函数呢。这样,当数据库更新完成时,就可以处理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
});