博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一款基于jQuery Ajax的等待效果
阅读量:7080 次
发布时间:2019-06-28

本文共 3588 字,大约阅读时间需要 11 分钟。

特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:

1、效果示例

1、加载中效果

2、加载后效果

2、代码样例

1 var ajaxUtil = { 2             /**为保证load图标不会一闪而过,小于600毫秒的请求将延时加载*/ 3             loadShowTime:600, 4             /** 5              * Ajax请求 6              * @param {Object} url 请求的url 7              * @param {Object} params 参数(json类型,如:{userName:'admin', email:'mao2080@sina.com'}) 8              * @param {Object} successCallBack 自定义函数-成功时返回 9              * @param {Object} errorCallBack 自定义函数-失败时返回10              * @param {Object} args 其他参数{"loadingId":null}11              */12             ajaxRequest : function(url, params, successCallBack, errorCallBack, args){13                 args = ajaxUtil.showLoading(args);14                 $.ajax({15                     url:url,16                     data:params,17                     type:"get",18                     dataType:"json",19                     async:true,20                     success:function(res){21                         if(res.success || res.code == 200){22                             args.timestamp = new Date().getTime()-args.timestamp;23                             if(args.timestamp || args.timestamp > ajaxUtil.loadShowTime){24                                 window.setTimeout(function(){25                                     ajaxUtil.hideLoading(args);26                                     successCallBack(res);27                                 }, ajaxUtil.loadShowTime-args.timestamp);28                             }else{29                                 ajaxUtil.hideLoading(args);30                                 successCallBack(res);31                             }32                         }else{33                             ajaxUtil.hideLoading(args, true);34                             if(errorCallBack){35                                 errorCallBack(res);36                             }37                         }38                     },39                     error:function(res){40                         ajaxUtil.hideLoading(args);41                         alert("请求失败...");42                     },43                 });44             },45             /**46              * 显示加载loading47              * @param {Object} args48              */49             showLoading:function(args){50                 args = !args?{}:args;51                 args.timestamp = new Date().getTime();52                 if(args.loadingId){53                     var container = $(args.loadingId);54                     if(container){55                         container.css({
"position":"relative"});56 container.append('
');57 }58 }59 return args;60 },61 /**62 * 隐藏加载loading63 * @param {Object} args64 */65 hideLoading:function(args){66 if(args.loadingId){67 var container = $(args.loadingId);68 if(container){69 container.find('.loading').remove();70 }71 }72 }73 }74 75 $(function(){76 ajaxUtil.ajaxRequest("data.json", null, function(res){77 //处理请求成功78 $("#userName").html(res.data.userName);79 $("#email").html(res.data.email);80 }, function(res){81 //处理请求失败82 }, {loadingId:"#test1"})83 });

3、资料下载

转载于:https://www.cnblogs.com/mao2080/p/6952594.html

你可能感兴趣的文章
RabbitMQ消费者消息权重,
查看>>
docker内存和cpu调试
查看>>
避开sql注入过滤的几个方法
查看>>
JQuery
查看>>
html和java的交互,利用jsBridge开源框架
查看>>
【hdu6072】Logical Chain
查看>>
Gartner:2013年SIEM市场分析(MQ)
查看>>
特殊命令eval的用法两例
查看>>
【物联网智能网关-12】以网关为核心,互联网为基础构建物联网平台
查看>>
SQL Server 全文索引
查看>>
Grid Control 10G安装与配置
查看>>
oracle vm的虚拟机windows启动不了的处理方式
查看>>
成长型企业的战略误区
查看>>
Linux 邮件服务器原理介绍,编译安装Postfix实现本地的邮件服务。
查看>>
VMware虚拟设备之虚拟磁盘配置与虚拟磁盘置备类型相关介绍
查看>>
MongoDB 3.0 新增特性一览
查看>>
实战开发经验: 软件系统设计思路
查看>>
LDA模型学习之(二)——主题的理解
查看>>
对haproxy代理流程的数据进行抓包分析
查看>>
关于tcp/ip三次握手的理解和详细分析
查看>>