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. mybatis一个怪异的问题: Invalid bound statement not found

    ssm中报一下错误: invalid bound statement (not found): me.tspace.pm.dao.userdao.getuser    at org.apache.ib ...

  2. c# 反射类字段

    //在wpf中动态绘制Grid布局控件中值 需要来动态获取类中的字段数来自动生成Grid列数或者行数, public class models { public Label name { get; s ...

  3. Yii2.0数据库查询的一些简单的操作

    User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User::find()->w ...

  4. Java Web学习笔记8

    上下文参数(context-param) 由于init-param是配置在<servlet>标签里的,只能有这个Servlet来读取,因此它不是全局的参数,不能被其他的Servlet读取. ...

  5. Spring系列之AOP实现的两种方式

    AOP常用的实现方式有两种,一种是采用声明的方式来实现(基于XML),一种是采用注解的方式来实现(基于AspectJ). 首先复习下AOP中一些比较重要的概念: Joinpoint(连接点):程序执行 ...

  6. PHP的ob_start()函数用法

    经典参考片段: <?php ob_start(); echo '123'; echo '456'; echo '789'; $content = ob_get_contents(); ob_en ...

  7. Go - 函数/方法 的 变参

    变参 本质上就是一个切片.只能接收一个或多个同类型参数,且 必须放在参数列表的 尾部. func test(s string, a ...int) { fmt.Printf("%T, %v\ ...

  8. 还原MySql数据库失败:max_allowed_packet 设置过小导致记录写入失败

    MySQL根据配置文件会限制Server接受的数据包大小. 有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置 show VARIABLES ...

  9. 学习 opencv---(2) 图像的载入,显示和输出

    了解过之前老版本OpenCV的童鞋们都应该清楚,对于OpenCV1.0时代的基于 C 语言接口而建的图像存储格式IplImage*,如果在退出前忘记release掉的话,就会照成内存泄露.而且用起来超 ...

  10. highcharts的引用

    开放 CDN 服务 1.基础的使用(CDN) <script src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"&g ...