2019.4.17 加载动画的实现与ajax的使用

先简单说一下任务要求,在一个系统中的所有保存,预览以及下载的地方实现加载动画。

首先我是使用的EasyUI,那么如何利用它实现加载动画呢?参考了一些博客,大致是这样子的:

// 建立一个loadanimation.js文件,然后写入以下代码:

//加载的动画
function ajaxLoading() {
    $("<div class=\"datagrid-mask\"></div>").css({ display: "block", width: "100%", height: $(window).height() }).appendTo("body");
    $("<div class=\"datagrid-mask-msg\"></div>").html("正在处理,请稍候。。。").appendTo("body").css({ display: "block", left: ($(document.body).outerWidth(true) - 190) / 2, top: ($(window).height() - 45) / 2 });
}

//加载的动画消失
function ajaxLoadEnd() {
    $(".datagrid-mask").remove();  //也可以使用hide()方法
    $(".datagrid-mask-msg").remove();

// 使用ajax调用
$.ajax({
                "url": 路径名,
                "type": 'post',
                "data": data,
                "dataType": "json",
                "beforeSend": ajaxLoading,  //发送请求前可修改 XMLHttpRequest 对象的函数
                "success": function (res) {  //请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
                    if (res.error == "") {   //请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象
                        ajaxLoadEnd();
                    }
                },
                "complete": function () {  //请求完成后回调函数 (请求成功或失败时均调用)。
                    window.parent.addTab('等待执行','/Admin/ShowMissionjqgrid?loc=@ViewBag.loc&lander=@ViewBag.lander1&statue=等待执行');
                },
                "error": function (res) {  //请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象
                    alert(res.error)
                }
            });

在上述的ajax获取数据中,我的想法是在加载动画结束后可以出现一个alert弹出框,如下:

success:function(e){
    if(e.error == ""){
        ajaxLoadEnd();
        alert("保存成功”)
    }
}

我的想法是加载的动画加载完以后出现弹出框。然而加载的动画正在加载的时候,alert弹出框就会出现,不符合我的想法。后来查看了一些博客,大致意思就是可以设置ajax的async属性,将它变为false,也就是同步的。然而设置以后,加载动画都不会出现啦,最后我只能把alert弹出框给去掉啦。有遇到相同问题的小伙伴希望可以留言告诉我如何解决这个问题哦。

当然也可以使用amazeUI去实现这个功能,可以使用它里面的模态窗口去实现,代码如下:

<div class="am-modal am-modal-loading am-modal-no-btn" tabindex="-1" id="my-modal-loading">
    <div class="am-modal-dialog">
        <div class="am-modal-hd">正在载入...</div>
        <div class="am-modal-bd">
            <span class="am-icon-spinner am-icon-spin"></span>
        </div>
    </div>
</div>

// js调用
var $modal = $('#my-modal-loading'); //loading
$modal.modal();
$modal.modal("close");  

转载于:https://www.cnblogs.com/niupeinan/p/10729040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值