1

当某些操作可能需要一些时间才能在服务器上执行时(它执行多个数据库查询,但这并不重要),我正在使用 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 } );
        }
    } );
4

0 回答 0