一款基于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横向手风琴图片展示插件.今天要 ...
随机推荐
- Flask-wtf导入Regexp规则库验证手机号码合法性(测试通过)
手机号码在项目有着很重要的地位,保证用户输入的号码准确无误就显得很关键. 废话不多说,现在页面中引入Regexp规则库: from wtforms.validators import Regexp 验 ...
- selenium与页面交互之二:webelement类的属性
webelement类的属性如下: element.size() 获取元素的大小 element.tag_name() 获取元素的HTML标签名称 element.text() 获取元素的文本 ...
- [转载]Ubuntu如何切换到命令行模式
来源:https://blog.csdn.net/lyy14011305/article/details/76325067 Ubuntu提供两种进入方式,一个是我们平常最熟悉的图形界面形式,还有一种是 ...
- php实用小技巧【持续更新】
这是本人开始做项目的时候遇到过的问题还有解决方法 1.eval函数 能把字符串转换成可执行的php代码,如果字符串不是可执行的php代码的话,需要在前面加上@,屏蔽notice 2.array_mer ...
- Error:Unexpected lock protocol found in lock file. Expected 3, found 49.
关于这个错误,今天研究了两三个小时的时间,查看网上的教程都解决不了问题,后来发现是自己的文件目录导入的有问题. 现在把自己关于解决这个问题的详细步骤说明一下. (1)首先,你先查看一下自己导入文件的目 ...
- Vim安装插件支持 MarkDown 语法、实时预览等
使用 markdown-preview.vim 插件可以实时通过浏览器预览 markdown 文件 使用该插件需要 vim 支持py2/py3 安装 使用 vim-plug: 在 .vimrc 或 i ...
- 总结linux内核的一些参数优化
sysctl命令被用于在动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中. 它包含一些TCP/IP堆栈和虚拟内存系统的高级选项, 用sysctl可以读取设置超过五百个系统变量. sy ...
- Educational Codeforces Round 42 (Rated for Div. 2) E. Byteland, Berland and Disputed Cities(贪心)
E. Byteland, Berland and Disputed Cities time limit per test2 seconds memory limit per test256 megab ...
- 关于PHP://input
$data = file_get_contents("php://input"); php://input 是个可以访问请求的原始数据的只读流. POST 请求的情况下,最好 ...
- P1058 立体图题解
小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣的内容.最近,他准备给小朋友们讲解立体图,请你帮他画出立体图. 小渊有一块面积为m \times nm×n的矩形区域,上面有m \times ...