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. [JavaEE]设计模式之SOLID原则

    1. S  The Single Responsibility Principle  单一责任原则 当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THA ...

  2. <<< 入侵网站思路

    思路: 以下是入侵网站常用方法: 1.上传漏洞 如果看到:选择你要上传的文件 [重新上传]或者出现“请登陆后使用”,80%就有漏洞了! 有时上传不一定会成功,这是因为Cookies不一样.我们就要用W ...

  3. Recall, Precision and F-score

    F1 score (also F-score or F-measure) ,调和平均数稍微有点不好理解,最关键的是,不知道分子的情况下,采用调和平均数.

  4. Sql Server 分区演练 【转】

    Sql Server 分区演练 [转] 代码加注释,希望对初学者有用. USE [master]GOif exists (select * from sys.databases where name ...

  5. ThinkPHP真正疑难问题笔记

    如何选择线程安全版本还是非线程安全版本: http://www.cnblogs.com/Alight/p/3389113.html(看webserver处理请求时, 使用的是多线程的方式还是 多进程的 ...

  6. URL详解

    浏览器因特网资源:URL是浏览器寻找信息时所需的资源位置,通过URL,应用程序才能找到并使用共享因特网上大量的数据资源. 大部分URL都遵循一种标准的格式: ①HTTP协议(http://或者http ...

  7. UGUI 学习笔记

    1.UGUI中是没有depth的概念,那要怎么在脚本中动态的改变一个UI元素在hierarchy中的排序位置呢? 放到最上面 Transform.SetAsFirstSibling最下面Transfo ...

  8. 什么时候用@Resource,什么时候用@service

    Spring中什么时候用@Resource,什么时候用@service当你需要定义某个类为一个bean,则在这个类的类名前一行使用@Service("XXX"),就相当于讲这个类定 ...

  9. 【推荐】MySQL Cluster报错及解决方法(不断更新中)

    排查问题技巧: MySQL Cluster 自带了一个错误代码的查看的小程序.通过这个小东西我们可以方便的定位问题的原因. 这个程序就是 perror 在MYSQL安装目录的bin下面. 如报错:ER ...

  10. CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

    [准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...