Jquery 使用BlockUI延迟页面变灰

Jquery 使用BlockUI延迟页面变灰,jquery,blockui,Jquery,Blockui,我正在使用BlockUI和jQuery来阻止对页面的访问,因为在服务器上执行某些操作可能需要一些时间(它执行几个数据库查询,但这并不重要)。这些动作大多执行得很快,有时需要几秒钟。避免不安。闪烁: 是否可以: -启动ajax请求以执行操作 -以不可见的方式阻止UI -如果500毫秒(设置)后答案不存在,请重新阻止UI,现在显示为灰色等。 -完成/出错时,取消阻止UI 我应该如何做类似的事情,或者我应该以不同的方式做,或者是否有其他插件可以执行这一开箱即用的功能 目前,我使用以下代码生成效果: D

我正在使用BlockUI和jQuery来阻止对页面的访问,因为在服务器上执行某些操作可能需要一些时间(它执行几个数据库查询,但这并不重要)。这些动作大多执行得很快,有时需要几秒钟。避免不安。闪烁:

是否可以: -启动ajax请求以执行操作 -以不可见的方式阻止UI -如果500毫秒(设置)后答案不存在,请重新阻止UI,现在显示为灰色等。 -完成/出错时,取消阻止UI

我应该如何做类似的事情,或者我应该以不同的方式做,或者是否有其他插件可以执行这一开箱即用的功能

目前,我使用以下代码生成效果:

DoRequest = function( param, name ) {
    $.blockUI( { message: null, fadeIn: 0, fadeOut: 0, overlayCSS: { opacity: 0.0 } } );
    blockUIPhase1 = setTimeout( function(){ 
        $.unblockUI( { fadeOut: 0 } );
        $.blockUI( { message: "Even geduld a.u.b.", overlayCSS: { opacity: 0.0 } } );
    }, 1000 );
    $.ajax( {
        url:        "screen.json",
        dataType:   'json',
        success: function( data ) {
            // ....
        },  
        complete: function() {
            if ( blockUIPhase1 != undefined ) clearTimeout( blockUIPhase1 );
            $.unblockUI( { fadeOut: 0 } );
        }
    } );

通过使用
setTimeout
这应该很容易实现。您可以发布您当前使用的代码吗。@Rory:我正在开始实现它,如果我有一些修改过的代码,我将更新问题。目前我以经典的方式使用BlockUI,所以它总是会再次变暗变亮。注意:setTimeout用于自动取消阻止UI。我不想自动取消阻止UI,而是在没有可见线索的情况下阻止UI,并且只有在超时后才使用可见线索(变暗)来显示quey需要大量时间。