0

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

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

        $.ajaxSetup({ asynch: false});

        LongServerCallMethod(); 

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

1 回答 1

2

将 long 方法调用放在 setTimeout 中,让浏览器有时间首先呈现 gif。但是,您会注意到,由于浏览器被您的异步调用锁定,微调器不会旋转。解决这个问题的唯一方法是不使用async: false.

setTimeout(function(){
    LongServerCallMethod();

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

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

于 2013-01-02T21:38:46.683 回答