过完年了,又要有新的项目了,趁暴风雨前的宁静,就把之前让我挺头疼的ajax加载给总结了一下。在此分享。

声明下:笔者对于ajax也是新手,如有更好的写法或可以优化的写法,还望指正!

项目需求:

移动端访问,进行选择答题,初始为五道题,当滑动到底部的时候,会有一个提示,向下滑动继续答题。

滑动后ajax加载,每次加载五道题加载出十五道题的时候,停止加载,并隐藏提示,显示出 提交答案的按钮。

(给人感觉永远答不完题一样,感觉这种需求纯属扯淡)

但是再扯淡也得实现不是..直接贴代码:我个人感觉写的复杂了,但是可以实现效果,发这个博文的目的还是想得到斧正。

<script src="js/jquery.js" type="text/javascript"></script>
<script>
//创建页码,每次获取ajax 页码+1,达到指定页码后停止加载
if (2<2) {
var currentpage=0;
var totalpage=50;
var maxpage=2;
} else{
var currentpage=4-4;
var totalpage=50;
var maxpage=2;
}; $(document).ready(function(){ $(window).scroll(function(){
  var scrollTop = $(this).scrollTop(); //滚动条距离顶部的高度
  var scrollHeight = $(document).height(); //当前页面的总高度
  var windowHeight = $(this).height(); //当前可视的页面高度  if(scrollTop + windowHeight >= scrollHeight){ //距离顶部+当前高度 >=文档总高度 即代表滑动到底部
ajaxRed(); //开始加载ajax
if(currentpage ==2){ //如果加载ajax达到2次 停止加载
$(".down_move").hide(); //提示滚动 图片隐藏
$(".submit_btn").css("display","block"); //提示可以提交该表单按钮出现。
return false; //如果条件满足 停止运行该判断
}
}
}); function ajaxRed(){ $("#loading_text").ajaxStart(function(){ //ajax开始执行(此方法必须jquery1.6版本及以下可以使用,高版本不支持)
$(this).show();
}).ajaxStop(function(){ //ajax结束执行(此方法必须jquery1.6版本及以下可以使用,高版本不支持)
$(this).hide();
});
currentpage++; //执行成功页码+1
if (currentpage>=totalpage || currentpage>maxpage){
return currentpage; //判断页码是否达到限定的加载次数;
return false;
}
var html=""; $.getJSON("json.php",function(json){ //获取json
if(json){ //每次加载五道题目
$.each(json,function(index,array){
var str = "<tr><td><h2>"+array["tiMu"]+"</h2></td></tr>";
str += "<tr><td><p><input type='radio' class='radio_input' name='"+array['radio_name']+"' />"+array["a"]+"</p></td></tr>";
str += "<tr><td><p><input type='radio' class='radio_input' name='"+array['radio_name']+"' />"+array["b"]+"</td></tr>";
str += "<tr><td><p><input type='radio' class='radio_input' name='"+array['radio_name']+"' />"+array["c"]+"</td></tr>";
str += "<tr><td><p><input type='radio' class='radio_input' name='"+array['radio_name']+"' />"+array["d"]+"</td></tr>";
$(str).appendTo("#table_more"); //将生成的文本追加到ID table_more子级最后面
});
}
}); return currentpage; //返回执行后的页码数 }
});

下来是php

<?php
$arr = array(
array(
'tiMu'=>'6、题目',
'radio_name'=>'name_6',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
array(
'tiMu'=>'7、题目',
'radio_name'=>'name_7',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
array(
'tiMu'=>'8、题目',
'radio_name'=>'name_8',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
array(
'tiMu'=>'9、题目',
'radio_name'=>'name_9',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
array(
'tiMu'=>'10、题目',
'radio_name'=>'name_10',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
);
$json = json_encode($arr);
echo $json;
?>

2014年2月17日

Margo

移动端-jquery Ajax执行滑动到底部进行加载 指定加载次数的更多相关文章

  1. JQuery Ajax执行过程AOP拦截

    JQuery Ajax过程AOP:用于在Ajax请求发送过程中执行必备操作,比如加载数据访问令牌. $.ajaxSetup({ type: "POST", error: funct ...

  2. UI5-技术篇-jQuery.ajax执行过程中Token验证及JSON格式传值问题

    最近两天在测试OData服务类方法CREATE_DEEP_ENTITY及GET_EXPANDED_ENTITYSET,刚开始采用ODataModel方式调用没有任何问题,但是ODataModel采用的 ...

  3. jQuery.Ajax()执行WCF Service的方法

    Insus.NET有在上一篇<ASP.NET MVC呼叫WCF Service的方法>http://www.cnblogs.com/insus/p/3720547.html 直接呼叫WCF ...

  4. 移动端ios 输入框fixed固定在底部 焦点时乱跳加遮盖问题的解决 转自zhangyunling 加个人项目解决方案

    如果您有过移动端的开发经验,那么您是否碰到过这样的问题,一个页面有输入框,当这个输入框聚焦时,输入框在IOS下,被移动到手机屏幕的当中去了,而在Android端,有些浏览器的输入框,会被键盘盖住. 1 ...

  5. Jquery ajax 与 lazyload的混合使用(实现图片异步加载)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. jquery Ajax应用总结

    常见应用: 下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET&quo ...

  7. jquery ajax 前前后后,所有的函数并查询链接

    jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 H ...

  8. jQuery Ajax 操作函数及deferred对象

    jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 H ...

  9. jQuery Ajax 操作函数

    jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 H ...

随机推荐

  1. 使用django+mysql+scrapy制作的一个小说网站

    小说网站用的程序都是千篇一律的,jieqi + guanguang,无聊时间学习python+django,也做了一个小说网站,下面说一说做这个网站一些过程, 制作这种采集站,最要紧的是要有一个好的采 ...

  2. 热门usb无线网卡

    拓实 N910 N95 N82 N81 N89 都是3070的 拓实 N87 G618 是8187的硬功夫 216 310 217 218 300 315 335 350 370 380 510 53 ...

  3. hibernate 映射<五>多对多双向映射

    多对多映射,可以分单向映射和双向映射.无论是单向还是多向那一方维护,还是双方维护,生成的表结构是一样的. 订单order和产品product是对多对的关系,就是多个订单可以对应多个产品,多个产品也可以 ...

  4. IntelliJ Idea取消Could not autowire. No beans of 'xxxx' type found的错误提示

    1.问题描述 在Idea的spring工程里,经常会遇到Could not autowire. No beans of 'xxxx' type found的错误提示.但程序的编译和运行都是没有问题的, ...

  5. ss命令,显示socket状态

    ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...

  6. WC2015流水账

    THU那四场考试没考好,只有20+名.这也许是我OI生涯中最后一场吧(已确认是最后一场),真是感慨万千. day0 搬进浙大宿舍404房间(神房间号),四个人一间.中午发现学军伙食相当良心,是我参加的 ...

  7. Codeforces 460 DE 两道题

    D Little Victor and Set 题目链接 构造的好题.表示是看了题解才会做的. 假如[l,r]长度不超过4,直接暴力就行了. 假如[l,r]长度大于等于5,那么如果k = 1,显然答案 ...

  8. MKMapView and Zoom Levels: A Visual Guide

    原帖:http://troybrant.net/blog/2010/01/mkmapview-and-zoom-levels-a-visual-guide/ So, how exactly does ...

  9. CentOS 6.3下Samba服务器的安装与配置(转)

    CentOS 6.3下Samba服务器的安装与配置   一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写, ...

  10. 关于kendo ui的使用改变颜色方式

    1.概述: 在网上kendo ui教程中示例在演示的时候引用的css样式为kendo.common.min.css与kendo.default.min.css这两个外部样式,大家有没有发现,这两个样式 ...