一款基于jQuery Ajax的等待效果
1、效果示例
1、加载中效果

2、加载后效果

2、代码样例
var ajaxUtil = {
/**为保证load图标不会一闪而过,小于600毫秒的请求将延时加载*/
loadShowTime:,
/**
* Ajax请求
* @param {Object} url 请求的url
* @param {Object} params 参数(json类型,如:{userName:'admin', email:'mao2080@sina.com'})
* @param {Object} successCallBack 自定义函数-成功时返回
* @param {Object} errorCallBack 自定义函数-失败时返回
* @param {Object} args 其他参数{"loadingId":null}
*/
ajaxRequest : function(url, params, successCallBack, errorCallBack, args){
args = ajaxUtil.showLoading(args);
$.ajax({
url:url,
data:params,
type:"get",
dataType:"json",
async:true,
success:function(res){
if(res.success || res.code == ){
args.timestamp = new Date().getTime()-args.timestamp;
if(args.timestamp || args.timestamp > ajaxUtil.loadShowTime){
window.setTimeout(function(){
ajaxUtil.hideLoading(args);
successCallBack(res);
}, ajaxUtil.loadShowTime-args.timestamp);
}else{
ajaxUtil.hideLoading(args);
successCallBack(res);
}
}else{
ajaxUtil.hideLoading(args, true);
if(errorCallBack){
errorCallBack(res);
}
}
},
error:function(res){
ajaxUtil.hideLoading(args);
alert("请求失败...");
},
});
},
/**
* 显示加载loading
* @param {Object} args
*/
showLoading:function(args){
args = !args?{}:args;
args.timestamp = new Date().getTime();
if(args.loadingId){
var container = $(args.loadingId);
if(container){
container.css({"position":"relative"});
container.append('<div class="loading" style="width:60px; height:24px; position:absolute;left:50%;top:50%;margin-left:-30px;margin-top:-12px;"><img src="img/loading-0.gif"/></div>');
}
}
return args;
},
/**
* 隐藏加载loading
* @param {Object} args
*/
hideLoading:function(args){
if(args.loadingId){
var container = $(args.loadingId);
if(container){
container.find('.loading').remove();
}
}
}
}
$(function(){
ajaxUtil.ajaxRequest("data.json", null, function(res){
//处理请求成功
$("#userName").html(res.data.userName);
$("#email").html(res.data.email);
}, function(res){
//处理请求失败
}, {loadingId:"#test1"})
});
3、资料下载
一款基于jQuery Ajax的等待效果的更多相关文章
- 推荐20款基于 jQuery & CSS 的文本效果插件
jQuery 和 CSS 可以说是设计和开发行业的一次革命.这一切如此简单,快捷的一站式服务.jQuery 允许你在你的网页中添加一些真正令人惊叹的东西而不用付出很大的努力,要感谢那些优秀的 jQue ...
- 一款基于jQuery/CSS3实现拼图效果的相册
之前为大家介绍了 HTML5 3D立体图片相册, HTML5图片相册重力感应特效, 基于CSS3图片可倾斜摆放的动画相册 今天我们要来分享一款很酷的jQuery相册插件,首先相册中的图片会以一定的角度 ...
- 基于jQuery标题有打字效果的焦点图
给大家分享一款基于jQuery标题有打字效果的焦点图.之前为大家分享了好多jquery的焦点图.这款焦点图适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗 ...
- 一款基于jquery的手风琴图片展示效果
今天要给大家分享一款基于jquery的手风琴图片展示效果.这款图片的展示效果鼠标经过前是灰色的,当鼠标经过时图片变大且变为彩色.效果图如下: 在线预览 源码下载 实现的代码. html代码: &l ...
- 12款优秀 jQuery Ajax 分页插件和教程
12款优秀 jQuery Ajax 分页插件和教程 在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 W ...
- 10款基于jquery实现的超酷动画源码
1.jQuery二级下拉菜单 下拉箭头翻转动画 之前我们分享过不少基于jQuery的二级下拉菜单,甚至是多级的下拉菜单,比如这款jQuery/CSS3飘带状多级下拉菜单就非常华丽.但今天要介绍的这款j ...
- 10款基于jquery的web前端特效及源码下载
1.jQuery时间轴插件:jQuery Timelinr 这是一款可用于展示历史和计划的时间轴插件,尤其比较适合一些网站展示发展历程.大事件等场景.该插件基于jQuery,可以滑动切换.水平和垂直滚 ...
- 8款基于Jquery的WEB前端动画特效
1.超炫酷的30个jQuery按钮悬停动画 按钮插件是最常见的jQuery插件之一,因为它用途广泛,而且配置起来最为方便.今天我们要分享的是30个超炫酷的jQuery悬停按钮动画,当我们将鼠标滑过按钮 ...
- 10款基于jquery的web前端动画特效
1.jQuery横向手风琴图片切换动画 之前我们为大家分享过很多款基于jQuery和CSS3的手风琴菜单和手风琴焦点图插件,比如CSS3响应式垂直手风琴菜单和jQuery横向手风琴图片展示插件.今天要 ...
随机推荐
- IDEA一些有用的功能
使用 Type Info 如果你想要更多的关于符号的信息,例如从哪里或它的类型是什么, 快速文档可以很好的帮到您,您可以按下 Ctrl+Q 来调用它,然后你会看到一个包含这些细节的弹出窗口.如果您不需 ...
- {经典}springmvc+mybatis+restful+webservice Jeesz分布式架构
框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件.数据权限组件.数据字典组件.核心工具 组件.视图操作组件.工作流组件组件.代码生成等.采用 ...
- 修改jar包package目录结构操作方法
开发中会遇到用第三方的jar包,有时候会出现不同的jar包,包名一致的情况,这就会引发运行时异常,找不到相应的jar包. 这种问题时常困扰我们很长时间.下面提出一种解决办法,例如gson.jar. 1 ...
- help_topic表,以字符拆分,一行转多行
help_topic表是数据库mysql下的一个表 SUBSTRING_INDEX(s, delimiter, number) 返回从字符串 s 的第 number 个 ...
- kali 下安装 vmtools
网上的教程都是默认路径下的,kali是定制版本的,路径不同,所以首先要找到media下安装包的路径,然后进入该路下,将安装包复制到想要的路径下,并解压缩到想要的路径下,剩下的就跟网上的差不多了,即找到 ...
- Delphi 指令符
- Django中数据库的增删改查
本随笔使用的是pycharm专业版2019.1.3.Django==1.9.8.Python2.7 这里的Django后台使用了ORM(Object Relational Mapping),全称对象关 ...
- Linux抓包与扫描工具
一.nmap扫描工具介绍: 1.安装nmap,如下: 2.检查目标主机所开启的TCP服务: 3.检查x.x.x.x/24网段内哪些主机开启了FTP.SSH服务 二.使用tcpdump分析 1.执行FT ...
- JQuery 时间戳转时间
JQuery 时间戳转时间 var date = new Date(stocks[i]['create_time'] * 1000); var y = date.getFullYear(); var ...
- vuex 管理状态
来分析下vuex的管理状态吧,如果你用过react中的redux的管理树,那我觉得vuex对你来说很容易掌握 如果你还是不太熟悉vuex是什么,那先看下官网https://vuex.vuejs.org ...