javascript – 如何在AJAX处理过程中使GIF图像继续移动?

我正在尝试在我的AJAX添加一个非常简单的加载GIF.我使用this GIF动画.但是,GIF只移动0.5-1s.然后,10秒后显示AJAX数据.

$('#btn_src').on('click', function (e) {
    $('.loading').show();
    $.ajax({
        type: "POST",
        url: "some_function",
        async: true,
        cache: false,
        dataType: "json",
        data: 'some_var',
        success: function (data) {
            //some data from AJAX success call. 
        },
        complete: function () {
            $('.loading').hide();
            $('#myModal').modal('show'); //This is a modal to display the data from AJAX
        }
    });
});

当前的AJAX有这种行为:

>显示GIF
> GIF在移动0,1-1后停止
> 10秒后显示弹出窗口. (所以,在我看到弹出之前.我的屏幕上有一个冻结的GIF).

我的期望是:

>显示GIF
> GIF继续移动(只要收集数据所需的秒数为1秒)
>隐藏GIF
>显示弹出窗口

解决方法:

问题似乎是浏览器在处理数据时无法使微调器旋转.首先,您需要测试并评论成功的全部内容.如果微调器不会冻结,那意味着数据的绝对大小不是造成这个ui故障的原因,而是解析.在这种情况下,您可能希望修改您的计划以将解析作业分成块并在一点点之间一点一点地调用它们以允许浏览器使用setInterval处理ui,但是当作业是时,不要忘记调用clearInterval完成.如果问题在于数据的庞大规模,那么您将不得不接受此行为或将响应分成数据包并使用setInterval发送请求,直到没有更多数据包要接收为止.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...