ajax异步加载

ajax异步加载

实现目标:点击“加载更多”按钮,就不刷新页面地加载更多数据在页面上。
加载更多
思路:将数据列表另起一个页面,并且在原页面“加载更多”按钮的点击事件中写一个ajax请求,该请求从后台获取数据并返回给数据页面。最后在ajax的回调函数中,将渲染的数据列表页面使用jquery或其他方式追加在原页面上。

原页面及JS(为减少篇幅只写相关部分)

<div>
    <div id="datalist">
		<!-- 数据将追加在该区域 -->
	</div>
		<!-- 加载按钮 -->
	<button id="morebtn" onclick="load()">
				<img style="height: 30px" src="./img/jiazaigengduo.png" id="moreimg" ></img>
	</button>
</div>
//加载按钮点击事件(ajax请求):
function load(){
	i++;   //记录当前获取的是第几页的数据
	$.ajax({     //ajax请求
		url:'getmore.do?page='+i+'&select='+select,  //页值作为参数发送给后台
		success:function(data){          //ajax回调函数,解析返回的数据列表页面                       
	        var body=getBody(data);     //自定义函数得到body
	        body=iGetInnerText(body);   //自定义函数去回车空格换行
			$("#datalist").append(body);  //追加在原页面上
		}
	})
}

//取出body
	function getBody(content){
  		var REG_BODY = /<body[^>]*>([\s\S]*)<\/body>/;
        var result = REG_BODY.exec(content);
        if(result && result.length === 2)
            return result[1];
        return content;
    }
//去回车换行空格
	function iGetInnerText(testStr) {
        var resultStr = testStr.replace(/\ +/g, ""); //去掉空格
        resultStr = testStr.replace(/[ ]/g, "");    //去掉空格
        resultStr = testStr.replace(/[\r\n]/g, ""); //去掉回车换行
        return resultStr;
    }

数据列表页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数据列表</title>
<script type="text/javascript"
	src="./js/jquery-3.3.1/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="./css/style.css">
</head>
<body>
<c:if test="${sessionScope.data[iistatus.index*5]!=null}" >
	<c:forEach var="ii" begin="0" end="9" varStatus="iistatus">
		<c:choose>
			<c:when test="${sessionScope.data[iistatus.index*5]!=null}">
				<div class="danpin center">
					<div class="biaoti center"  style="height: 10px"></div>
					<div class="main center">
						<c:forEach varStatus="istatus" var="i"
							begin="${iistatus.index*5 }" end="${iistatus.index*5+4 }"
							items="${ sessionScope.data }">
							<div class="mingxing fl" style="padding-bottom: 10px">
								<div class="sub_mingxing">
									<a href="articledetail.do?id=${i.id }"><img src="${i.img }"
										alt=""></a>
								</div>
								<div class="pinpai">
									<a href="articledetail.do?id=${i.id }">${i.name }</a>
								</div>
								&nbsp;
								<div class="jiage">${i.price }元</div>
								<div class="youhui">销量:${i.hot }&nbsp;&nbsp;库存:${i.num }</div>
								<div class="jrgwc"
									style="display: flex; flex-direction: row-reverse;">
									<a href="javascript:jrgwc(${i.id });"> <img
										style="width: 20px; height: 20px; margin-right: 20px;"
										src="./img/gouwuche.jpg">
									</a>
								</div>
							</div>
						</c:forEach>
						<div class="clear"></div>
					</div>
				</div>
			</c:when>
		</c:choose>
	</c:forEach>
</c:if>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值