jquery Ajax 案例
html
<div class="data"><ul></ul></div>
<div id="load">点击加载</div>
css
/*Ajax loading*/
#load{
display: block;
height: 40px;
line-height: 40px;
text-align: center;
color: #666666;
background-color: #f7f7f7;
}
.loading{
width: 40px;
height: 40px;
margin: 0 auto;
background: url(images/loading.png) center center no-repeat;
background-size: auto 60%;
-webkit-animation: 2s linear 0s normal none infinite loadrotate;
animation: 2s linear 0s normal none infinite loadrotate;
}
@keyframes loadrotate{
0% {transform: rotate(0deg);}
50% {transform: rotate(180deg);}
100%{transform: rotate(360deg);}
}
@-webkit-keyframes loadrotate{
0% {transform: rotate(0deg);}
50% {transform: rotate(180deg);}
100%{transform: rotate(360deg);}
}
js
$(function(){
var page = 1;
var ajax_getting = false;
//fn Ajax
function ajaxData(){
var dataList = $.ajax({
type: "GET",
url: "../data/data" + page + ".json", //request url
timeout: 10000,
async: true,
dataType: "json",
success: function(data){
if(data.data.length < 1){
$("#load").html('没有更多数据').unbind("click");;
return false;
}else{
for (var i = 0; i < data.data.length; i++) {
newHtml($(".data"),data.data[i])
};
$("#load").html('点击加载');
page++; //after load success to plus page number
}
ajax_getting = false;
},
complete: function(XMLHttpRequest,status){
if(status == 'timeout'){
aftError("请求超时",dataList);
}
if(status == 'error'){
aftError("异常",dataList);
}
}
})
}
//fn click to load data
$("#load").click(function(){
$(this).html('<div class="loading"></div>');
setTimeout(function(){
ajaxData()
},100)
})
//fn scroll to load data
$(document).scroll(function(){
var scrollT = $(document).scrollTop();
var windH = $(window).height();
var docuH = $(document).height();
if(scrollT > docuH-windH-1){
if(ajax_getting){
return false;
}else{
ajax_getting = true;
}
$("#load").trigger("click");
}
})
//append html code
function newHtml(ele,objItem){
var htmlPlus = '';
htmlPlus += '<li>';
htmlPlus += '<a href="'+ objItem.link +'">';
htmlPlus += '<img src="'+ objItem.imgurl +'">';
htmlPlus += '<span class="v_tit">'+ objItem.title +'</span>';
htmlPlus += '</a>';
htmlPlus += '</li>';
ele.find("ul").append(htmlPlus);
}
//fn after error
function aftError(txt,self){
self.abort();
alert(txt);
$("#load").html('点击加载');
ajax_getting = false;
}
//first loading
$("#load").trigger("click");
})
json
{
"name": "videoList",
"data": [
{
"title": "电影标题1",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题2",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题3",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题4",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题5",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题6",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题7",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题8",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题9",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
},
{
"title": "电影标题10",
"imgurl": "style/images/v1.jpg",
"link": "videoDetail.html"
}
]
}
jquery Ajax 案例的更多相关文章
- jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析
jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析: 同样的请求同时请求了2次,然后第二次的请求把第一次的给刷掉了! (比如:<div on ...
- 项目中的一个JQuery ajax实现案例
/** * brief 这些代码用于在线制图中 attention author <list of authors> <date> begin modify by * nu ...
- jquery ajax 请求参数详细说明 及 实例
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- JavaScript强化教程——jQuery AJAX 实例
什么是 AJAX?AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML).简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据 ...
- JQuery $.ajax()方法详解
jQuery Ajax 参考手册 实例 通过 AJAX 加载一段文本: jQuery 代码: $(document).ready(function(){ $("#b01").cli ...
- JQuery AJAX: 了解jQuery AJAX
jQuery AJAX 一.简介1.AJAX是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新.AJAX = 异步 JavaScript 和 XML(Asynchronous ...
- JQuery AJAX介绍
new ActiveXObject("Microsoft.XMLHTTP")是IE中创建XMLHttpRequest对象的方法.非IE浏览器中创建方法是new XmlHttpReq ...
- jQuery AJAX 简介
AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. jQuery AJAX 实例 使用 jQuery AJAX 修改文本内容 尝试一下 » 什么是 AJAX? A ...
- Django-website 程序案例系列-6 ajax案例
普通ajax案例: views.py def testajax(request): h = request.POST.get('hostname') #拿到ajax传来的值 i = request.P ...
随机推荐
- elk系列8之logstash+redis+es的架构来收集apache的日志
preface logstash--> redis --> logstash --> es这套架构在讲究松耦合关系里面是最简单的, 架构图如下: 解释下这个架构图的流程 首先前端lo ...
- <<< java环境搭建
先百度搜索"jdk下载" 安装完成之后,到系统环境变量设置(电脑右键,属性,高级系统设置) 然后点击下面path系统变量,把C:\Program Files ...
- backup mysql
#!/bin/bashcd /home/Licw/backup_openDBNow=$(date +"%m-%d-%Y--%H:%M:%S")#echo $NowFile=$Now ...
- 裁剪要素出现错误 :HRESULT:0x80040239
pFeatureBuffer = pOutFeaCls.CreateFeatureBuffer(); pFeatureCursor = pOutFeaCls.Inser ...
- asp.net core 使用EF7 Code First 创建数据库,同时使用命令创建数据库
1.首先下载vs2015的Asp.Net Core(RC2)的插件工具(https://www.microsoft.com/net/core#windows)2.创建一个asp.net Core的项目 ...
- jsp动作元素之forward指令
forward指令用于将页面响应转发到另外的页面.既可以转发到静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet. forward指令格式如下: <jsp:for ...
- centos安装PHP服务器步骤
方法一.使用网友开发的EZHTTP程序包一键安装. 可以参考地址http://www.centos.bz/2013/08/ezhttp-tutorial/ http://www.cnblogs.com ...
- HahsRouter hash 路由
无刷新页面,切换视图,用hash 实现路由切换,本身附带history记录,简单舒服. 最近用vue,看到vue-route的路由,做单页应用切换视图真心易如反掌,分分钟爽到不行.为了加深理解其内涵原 ...
- Linux下对比两个文件夹的方法
最近拿到一份源代码,要命的是这份源代码是浅克隆模式的git包,所以无法完整显示里面的修改的内容. 今天花了一点点时间,找了一个在Linux对比两个文件夹的方法. 其实方法很简单,用meld 去对比两个 ...
- PHP 版去bom头
原理: 找出文件前3个字符 如果它们对应的ASCII 值分别是 239,187,191 则判断为bom头,去掉前3个字符. 代码实现如下: $basedir = isset($_GET['dir'] ...