显示长复选框点击事件的进度

时间:2013-01-02 21:14:07

标签: javascript jquery

我有一个复选框,检查它会触发对服务器的长时间调用。我希望在用户等待呼叫时显示旋转的.gif图像,但图像未显示。以下是我的代码段:

$('#chk').click(function () {
        $('span.progress-indicator').show(); //the gif image

        $.ajaxSetup({ asynch: false});

        LongServerCallMethod(); 

        $('span.progress-indicator').hide(); //the gif image
    });

1 个答案:

答案 0 :(得分:2)

将long方法调用放在setTimeout中,允许浏览器首先渲染gif。但是,您会注意到,由于浏览器被异步调用锁定,因此微调器不会旋转。解决这个问题的唯一方法是不使用async: false

setTimeout(function(){
    LongServerCallMethod();

    $('span.progress-indicator').hide(); //the gif image
},0);

如果你有时间,你真的应该重写代码以不使用async: false,因为时间是唯一可能阻止你将async: false代码转换为async: true的东西}