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 ...
随机推荐
- mybatis一个怪异的问题: Invalid bound statement not found
ssm中报一下错误: invalid bound statement (not found): me.tspace.pm.dao.userdao.getuser at org.apache.ib ...
- c# 反射类字段
//在wpf中动态绘制Grid布局控件中值 需要来动态获取类中的字段数来自动生成Grid列数或者行数, public class models { public Label name { get; s ...
- Yii2.0数据库查询的一些简单的操作
User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User::find()->w ...
- Java Web学习笔记8
上下文参数(context-param) 由于init-param是配置在<servlet>标签里的,只能有这个Servlet来读取,因此它不是全局的参数,不能被其他的Servlet读取. ...
- Spring系列之AOP实现的两种方式
AOP常用的实现方式有两种,一种是采用声明的方式来实现(基于XML),一种是采用注解的方式来实现(基于AspectJ). 首先复习下AOP中一些比较重要的概念: Joinpoint(连接点):程序执行 ...
- PHP的ob_start()函数用法
经典参考片段: <?php ob_start(); echo '123'; echo '456'; echo '789'; $content = ob_get_contents(); ob_en ...
- Go - 函数/方法 的 变参
变参 本质上就是一个切片.只能接收一个或多个同类型参数,且 必须放在参数列表的 尾部. func test(s string, a ...int) { fmt.Printf("%T, %v\ ...
- 还原MySql数据库失败:max_allowed_packet 设置过小导致记录写入失败
MySQL根据配置文件会限制Server接受的数据包大小. 有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置 show VARIABLES ...
- 学习 opencv---(2) 图像的载入,显示和输出
了解过之前老版本OpenCV的童鞋们都应该清楚,对于OpenCV1.0时代的基于 C 语言接口而建的图像存储格式IplImage*,如果在退出前忘记release掉的话,就会照成内存泄露.而且用起来超 ...
- highcharts的引用
开放 CDN 服务 1.基础的使用(CDN) <script src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"&g ...