使用BlockUI延迟灰显

时间:2012-09-05 08:43:39

标签: jquery blockui

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

是否有可能: - 启动ajax请求以执行操作 - 无形地阻止UI - 如果在500毫秒(一个设置)后答案不存在,重新阻止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 } );
        }
    } );

0 个答案:

没有答案