微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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发送请求,直到没有更多数据包要接收为止.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐