1.微信扫描网站入口二维码,进入移动端
2.点击“加载更多”按钮,实现移动端分页功能,目的减少客户等待时间以及节省流量(一次性加载全部数据,数据量大时会导致页面等待时间过长和不必要的流量浪费)
3.原理流程:ajax将form表单数据以及当前页面加1组装为数组转到后台,后台做分页查询,将结果组装到jsonArray中再传到前台,前台在ajax中用js代码将传来的数据也原来的列表页面进行组装,追加到原有列表后面。
4.核心代码:
1> 加载更多按钮和页码隐藏域
<#if gTotalPageNumber != gCurrentPageNumber>
<li class="more" onclick="moreAbility()">加载更多</li>
<li class="noMore" style="display:none;">没有更多</li>
<#else>
<li class="more" style="display:none;" onclick="moreAbility()">加载更多</li>
<li class="noMore">没有更多</li>
</#if>
<input type="hidden" id="gCurrentPageNumber" value="${gCurrentPageNumber}" />
<input type="hidden" id="gTotalPageNumber" value="${gTotalPageNumber}" />
2> ajax
function moreAbility(){ var gCurrentPageNumber = parseInt($("#gCurrentPageNumber").val()) + 1; var url = "${Context}/mobile/testing/moreInstitutions.action";
//序列化form表单,得到的是组数对象 var dataobj = $('#search').serialize();
//拼接页码 dataobj+="&gCurrentPageNumber="+ gCurrentPageNumber; var url = "${Context}/mobile/testing/moreAbility.action"; $.ajax({ url:url, async : false, type: "POST", data: dataobj, success: function(result) { var resultJson = eval('('+result+')') ; var cuserList = resultJson.cuserList; for(var i = 0; i < cuserList.length; i++){ var divPDom = document.createElement("div"); divPDom.setAttribute("class","nengli_list"); var divTitleDom = document.createElement("div"); divTitleDom.setAttribute("class","nengli_list_title"); divTitleDom.innerHTML = cuserList[i].unitName; divPDom.appendChild(divTitleDom); var divTextDom = document.createElement("div"); divTextDom.setAttribute("class","nengli_list_text content"); divTextDom.innerHTML = "检测范围:"+cuserList[i].detectionRange; divPDom.appendChild(divTextDom); //加载到li标签前面,li标签是“加载更多“按钮 $("li").eq(-2).before(divPDom); } $("#gCurrentPageNumber").val(resultJson.gCurrentPageNumber); $("#gTotalPageNumber").val(resultJson.gTotalPageNumber); if(resultJson.gCurrentPageNumber == resultJson.gTotalPageNumber){ $(".more").css("display","none"); $(".noMore").css("display",""); } }, error:function(XMLHttpRequest){ alert("操作失败,请重试!"); } }); }
3> 组装后台数据
//能力查询 加载更多
public String moreAbility() throws Exception{
//分页数据查询
abilityQuery();
JsonObject jsonObj = new JsonObject();
jsonObj.addProperty("gCurrentPageNumber", super.gCurrentPageNumber);
jsonObj.addProperty("gTotalPageNumber", super.gTotalPageNumber);
JsonArray jsonArray = new JsonArray();
for (int i = 0; i < cuserList.size(); i++) {
JsonObject tempObj = new JsonObject();
tempObj.addProperty("unitName", cuserList.get(i).getUnitName() == null ?"":cuserList.get(i).getUnitName());
tempObj.addProperty("detectionRange", cuserList.get(i).getDetectionRange() == null ?"":cuserList.get(i).getDetectionRange());
jsonArray.add(tempObj);
}
jsonObj.add("cuserList", jsonArray);
new Struts2Util().ResponsePrint(jsonObj.toString());
return null;
}
