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;
}
