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 案例的更多相关文章

  1. jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析

    jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析: 同样的请求同时请求了2次,然后第二次的请求把第一次的给刷掉了! (比如:<div on ...

  2. 项目中的一个JQuery ajax实现案例

    /**  * brief 这些代码用于在线制图中 attention author <list of authors> <date> begin modify by  * nu ...

  3. jquery ajax 请求参数详细说明 及 实例

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  4. JavaScript强化教程——jQuery AJAX 实例

    什么是 AJAX?AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML).简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据 ...

  5. JQuery $.ajax()方法详解

    jQuery Ajax 参考手册 实例 通过 AJAX 加载一段文本: jQuery 代码: $(document).ready(function(){ $("#b01").cli ...

  6. JQuery AJAX: 了解jQuery AJAX

    jQuery AJAX 一.简介1.AJAX是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新.AJAX = 异步 JavaScript 和 XML(Asynchronous ...

  7. JQuery AJAX介绍

    new ActiveXObject("Microsoft.XMLHTTP")是IE中创建XMLHttpRequest对象的方法.非IE浏览器中创建方法是new XmlHttpReq ...

  8. jQuery AJAX 简介

    AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. jQuery AJAX 实例 使用 jQuery AJAX 修改文本内容 尝试一下 » 什么是 AJAX? A ...

  9. Django-website 程序案例系列-6 ajax案例

    普通ajax案例: views.py def testajax(request): h = request.POST.get('hostname') #拿到ajax传来的值 i = request.P ...

随机推荐

  1. UVa 11987 Almost Union-Find(支持删除操作的并查集)

    传送门 Description I hope you know the beautiful Union-Find structure. In this problem, you’re to imple ...

  2. 亿级 Web 系统的容错性建设实践

    一. 重试机制 最容易也最简单被人想到的容错方式,当然就是“失败重试”,总而言之,简单粗暴!简单是指它的实现通常很简单,粗暴则是指使用不当,很可能会带来系统“雪崩”的风险,因为重试意味着对后端服务的双 ...

  3. 这可能是由于服务终结点绑定未使用 HTTP 协议造成的 .这还可能是由于服务器中止了 HTTP 请求上下文

    一个很简单的WCF报这个异常,才发现是 Response的类无法被序列化 因为在Response类里有一个枚举 StatusType,而系统的枚举值是 从0-5,但是数据库里多了一个值为6的记录 这样 ...

  4. asp rs开启关闭问题

    使用rs.close关闭后,可以直接用rs.open来打开数据表:如果用了set rs = nothing 从内存中清除rs对象,再次加载rs对象就需要使用set rs=server.createob ...

  5. [Unity3D]导入模型并且设置相应的属性

    将资源拷贝到Assets中并设置 首先确保法线贴图的属性如下: 设置基本贴图和法线贴图 因为要发布到移动端,设置shader属性: 为了设置更好的反光效果,添加cubemap: 添加新的Materia ...

  6. SearchLookUpEdit

    参考资料: 慧都控件网-DevExpress开发资源 在GridControl控件中使用SearchLookUpEdit构建数据快速输入

  7. [译]ES6中的代理对象

    原文:http://ariya.ofilabs.com/2013/07/es6-and-proxy.html 能够拦截在一个对象上的指定操作的能力是非常有用的,尤其是在故障调试的时候.通过ECMASc ...

  8. [译]Testing Node.js With Mocha and Chai

    原文: http://mherman.org/blog/2015/09/10/testing-node-js-with-mocha-and-chai/#.ViO8oBArIlJ 为什么要测试? 在此之 ...

  9. XMPP作为一个工具的意义

    学习XMPP就是拥有位当前应用程序添加实时,推送,社交功能所需的工具.虽然浏览器不支持XMPP通讯,但是我们可以通过BOSH技术解决. 一个XMPP网络包含如下 服务器:为XMPP节提供路由,是否支持 ...

  10. thinkphp3.2.3之自动完成的实现

    有时候,我们希望系统能够帮我们自动完成一些功能,比如自动为密码加密,忽略空等,这个时候我们就需要利用到自动完成(填写)的功能. ThinkPHP 模型层提供的数据处理方法,主要用于数据的自动处理和过滤 ...