过完年了,又要有新的项目了,趁暴风雨前的宁静,就把之前让我挺头疼的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. for-in语句

    <script type="text/javascript"> /* for-in语句: for-in语句的格式: for(var 变量名 in 遍历的目标){ } f ...

  2. 【转】Nginx windows下搭建过程

    Nginx windows下搭建过程 内容列表: 简要介绍 下载安装 配置测试 一.简要介绍 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器, ...

  3. 避免Block的循环引用

    避免Block的循环引用 什么是循环引用,什么时候发生循环引用 1 循环引用就是当self 拥有一个block的时候,在block 又调用self的方法.形成你中有我,我中有你,谁都无法将谁释放的困局 ...

  4. Swift语法之 ---- ?和!区别

    1.常量和变量 Swift语言中是用let来定义常量,并且要初始化.var来定义变量,在let或者var后面申明类型,冒号+空格,然后再加上类型名称. 2.optional(可选)变量 可选变量用于处 ...

  5. Altium Designer如何批量修改名称,数值,封装

    方法一: altium里的封装管理库 1,Tools -> Footprint Manager -> ...2,在Component List里选择要改的器件3,在View and Edi ...

  6. Why SignalR does not use WebSockets?

    Why SignalR does not use WebSockets?   As you probably know SignalR supports multiple transports. Th ...

  7. layer iframe层的使用,传参

    父层 <div class="col-xs-4 text-left" style="padding-left: 50px;"><button ...

  8. 【转】android如何查看cpu的占用率和内存泄漏

    原文网址:http://www.cnblogs.com/yejiurui/p/3472765.html 在分析内存优化的过程中,其中一个最重要的是我们如何查看cpu的占用率和内存的占用率呢,这在一定程 ...

  9. 【转】Android:控件Spinner实现下拉列表

    原文网址:http://www.cnblogs.com/tinyphp/p/3858920.html 在Web开发中,HTML提供了下拉列表的实现,就是使用<select>元素实现一个下拉 ...

  10. Android圆角矩形的实现

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android=&quo ...