`
hrsvici412
  • 浏览: 74519 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JavaScript实践——AJAX分页

阅读更多

今天写了一个AJAX分页,把思路整理一下。

 

private int count = 0;// 总记录数


	private int currentPage = 0; //当前页面


	private int pageSize = 10; // 每页记录数


	private int totalPage = 1;  //总页总书


        //从数据取出总记录数,求出页面总数


        count = XXXService.getCount(st);


        if(count>0){


			if(count % pageSize!=0){


				totalPage = count / pageSize + 1;


			}else


				totalPage = count /pageSize;


	 }


/**根据http传入的第几页,从数据库找出记录**?


currentPage = Integer.valueOf(_request.getParameter("page"));


String hql = "from RfVipVoucher rfVipVoucher where rfVipVoucher.buyer = " + person.getId();


List buyRecord = XXXServicer.findByHql(hql,currentPage,pageSize);


		Iterator ite = buyRecord.iterator();


		StringBuffer xml = new StringBuffer("<?xml version=\"1.0\" encoding=\"GBK\" ?>");


		xml.append("<response>");


		int index = 0;


		while (ite.hasNext()) {


			RfVipVoucher rfVipVoucher = (RfVipVoucher) ite.next();


			String num = rfVipVoucher.getNum();


			Integer cardTime = rfVipVoucher.getCardTime();


			String buyTime =  UtilTools.formatDate(rfVipVoucher.getGerTime(),"long");


			String flag = rfVipVoucher.getFlag().equals("0") ? "未激活卡" :"已激活卡";


			String activeTime = (rfVipVoucher.getPutTime()!= null)? UtilTools.formatDate(rfVipVoucher.getGerTime(),"long"):"点击激活";


			xml.append("<rfVipVoucher>");


				xml.append("<index>");


				xml.append(index);


				xml.append("</index>");


				xml.append("<num>");


				xml.append(num);


				xml.append("</num>");


				xml.append("<cardTime>");


				xml.append(cardTime);


				xml.append("</cardTime>");


				xml.append("<buyTime>");


				xml.append(buyTime);


				xml.append("</buyTime>");


				xml.append("<flag>");


				xml.append(flag);


				xml.append("</flag>");


				xml.append("<activeTime>");


				xml.append(activeTime);


				xml.append("</activeTime>");


			xml.append("</rfVipVoucher>");


			index++;


		}


		


		xml.append("<page>");


		xml.append(currentPage);


		xml.append("</page>");


		xml.append("<totalPage>");


		xml.append(totalPage);


		xml.append("</totalPage>");





		xml.append("</response>");


		


		_response.setContentType("text/xml;charset=GBK");


		_response.setHeader("Pragma", "No-cache");


		_response.setHeader("Cache-Control", "no-cache");


		_response.setDateHeader("Expires", 0);

 

function loadRecord(page){  // 加载第page页的数据
				var url = "<%=contextPath%>/userCenter/RFContextBuyRecord.html?page="+page+"&timeStamp=" + new Date().getTime();
				AJAXUtil.doRequstUsingGet(recordStateChange,url,true);
			}
			
			function recordStateChange(){
			
				var xmlDoc = xmlHttpRequest.responseXML;
			    var nums=xmlDoc.getElementsByTagName("num");	
			    var cardTimes=xmlDoc.getElementsByTagName("cardTime");	
			    var buyTimes=xmlDoc.getElementsByTagName("buyTime");	
			    var flags=xmlDoc.getElementsByTagName("flag");	
			    var activeTimes=xmlDoc.getElementsByTagName("activeTime");	
			    var len = nums.length;
			    var tab = document.getElementById("recordList");
			    /**清空表**/
		        clearRecordList();
			    var row, cell, txtNode;
			    for (var i = 0; i < len; i++) {
			        var num = nums[i].firstChild.data;	
			      	var cardTime=cardTimes[i].firstChild.data;
			      	var buyTime=buyTimes[i].firstChild.data;
			      	var flag=flags[i].firstChild.data;
			      	var activeTime=activeTimes[i].firstChild.data;
			      	row = document.createElement("tr");
			        row.appendChild(createCellWithText(num));
			        row.appendChild(createCellWithText(cardTime));
			        row.appendChild(createCellWithText(buyTime));
			        if(flag=="未激活卡") row.appendChild(createCellWithElement("未激活卡"));
			        else row.appendChild(createCellWithText(flag));
			        if(activeTime=="点击激活")  row.appendChild(createCellWithElement("点击激活"));
			        else  row.appendChild(createCellWithText(activeTime));
			        tab.appendChild(row);
			        
			    }	
			   	var page = parseInt(xmlDoc.getElementsByTagName("page")[0].firstChild.data);	
			    var totalPage = parseInt(xmlDoc.getElementsByTagName("totalPage")[0].firstChild.data);	
			    
			    var totalSpan = document.getElementById("totalSpan");
			    var preA = document.getElementById("preA");
			    var nextA = document.getElementById("nextA");
			    document.getElementById("page").value = page;
			    totalSpan.innerHTML = "<font color='red'>" +page+"/"+totalPage+"</font>";
			    
			    if(page<=1){
		        	preA.onclick = function(){ 
		        		return;
		        	};	
			    }else{
			        preA.onclick=function (){
				        var p=parseInt(document.getElementById("page").value)-1;
				        loadRecord(p);
			      	};
			    }	
			    
			    if(page>=totalPage){
			        nextA.onclick= function(){
				        	return;
				        };	
			    }else{
			    	 nextA.onclick=function (){
			    	 	var p=parseInt(document.getElementById("page").value)+1;
			    	 	 loadRecord(p);
			    	};
			    }	
			}
			
			function createCellWithText(text){ //创建一个TD元素,内含文本
			    var cell= document.createElement("td");
			    cell.appendChild(document.createTextNode(text));
			    cell.style.textAlign = "center";
			    cell.style.border = "1px solid #94D7F1";
			    return cell;
			}
			
			function createCellWithElement(text){ //创建一个TD元素,内含元素
			    var cell= document.createElement("td");
			    var aElement = document.createElement("a")
			    aElement.href="<%=contextPath %>/RF/preVipVoucher.html";
			    aElement.target="_blank";
			    var txt = document.createTextNode(text)
			    aElement.appendChild(txt);
			    cell.appendChild(aElement);
			    cell.style.textAlign = "center";
			    cell.style.border = "1px solid #94D7F1";
			    return cell;
			}
           
			function clearRecordList(){
			    var tab = document.getElementById("recordList");   	
			    while(tab.childNodes.length > 0) {
			        tab.removeChild(tab.childNodes[0]);
			    }	
			}	
 
分享到:
评论

相关推荐

    ASP.NET源码——Ajax分页小代码.zip

    这个"ASP.NET源码——Ajax分页小代码.zip"压缩包显然包含了一个使用ASP.NET实现的Ajax分页功能的示例代码。 在ASP.NET中,实现Ajax分页通常涉及到以下几个关键知识点: 1. **ASP.NET Web Forms与控件**:ASP.NET ...

    建网站必备——ajax分页小代码

    本文将深入探讨如何在ASP.NET环境中实现Ajax分页,并提供相关知识点。 首先,理解Ajax的核心概念至关重要。Ajax并非一种编程语言,而是一种使用现有技术(JavaScript、XMLHttpRequest对象、DOM和CSS)进行异步数据...

    ajax分页demo

    【Ajax分页技术详解】 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...通过理解和实践“ajax分页demo”,开发者可以更好地掌握Ajax在实际项目中的应用。

    Ajax征服——Ajax小偷模块 源码

    在"Ajax征服——Ajax小偷模块 源码"中,我们可能会涉及到以下几个关键知识点: 1. **XMLHttpRequest对象**:这是Ajax的基础,用于在后台与服务器进行通信。通过创建XMLHttpRequest实例,我们可以打开到服务器的连接...

    ASP.NET源码——Ajax三级联动和无刷新分页源码.zip

    这个压缩包"ASP.NET源码——Ajax三级联动和无刷新分页源码.zip"提供了两个关键功能的实现:Ajax三级联动和无刷新分页。 **Ajax三级联动**是Web开发中的常见交互模式,主要用于提升用户体验。在传统的网页交互中,...

    JavaScript——Ajax

    JavaScript中的Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换数据并更新部分网页内容,使得用户可以一边浏览页面,一边进行...

    JavaScript凌厉开发——Ext JS3详解与实践

    《JavaScript凌厉开发——Ext JS3详解与实践》是一本深度探讨JavaScript库Ext JS3的专著,旨在帮助开发者深入理解和高效运用这一强大的前端框架。本文将围绕标题、描述及标签,详细介绍Ext JS3的核心概念、关键特性...

    Springboot框架中ajax动态加载分页

    在Spring Boot框架中,实现Ajax动态加载分页是一项常见的需求,尤其在开发数据量庞大的Web应用时。Ajax技术能够提供异步数据加载能力,避免页面整体刷新,提高用户体验。下面我们将详细探讨如何在Spring Boot中结合...

    ASP.NET实例开发源码——AspNetPager分页控件(附实例代码).zip

    5. **Ajax支持**:如果实例中包含了Ajax分页,那么开发者需要理解ASP.NET的UpdatePanel和ScriptManager组件,以及JavaScript和jQuery的基本用法。Ajax分页可以在不刷新整个页面的情况下更新内容,提高用户体验。 6....

    一个比较强大的Ajax分页

    Ajax分页则是这种技术的一种增强版,它利用了异步JavaScript和XML(Ajax)的技术特性,实现了无刷新的页面切换,提升了用户的浏览体验。 Ajax分页的核心在于通过Ajax请求从服务器获取分页数据,而不是重新加载整个...

    ajax分页插件 jquery分页插件

    **jQuery分页插件——实现高效美观的Ajax分页** 在网页开发中,尤其是在处理大量数据展示时,分页功能是不可或缺的一部分。它能够帮助用户更有效地浏览和管理信息,而无需一次性加载所有数据,从而提高用户体验。...

    Ajax征服——相册模块 源码

    **Ajax技术详解与相册模块实现** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个...通过理解和实践这个源码,你不仅可以掌握Ajax的基本用法,还能了解到如何结合其他前端技术构建复杂的功能模块。

    Ajax功能 实现许愿墙 —— wish

    在IT行业中,Ajax(Asynchronous JavaScript and XML)技术是一种用于创建快速、动态网页的重要方法。它允许我们在不刷新整个...通过这样的实践,开发者可以深入理解Ajax的工作机制,并提升Web应用的动态性和实时性。

    ajax无刷新分页技术

    **三、Ajax分页实例——apTabs Ajax动态网页选项卡PHP版** apTabs是一款基于Ajax的PHP选项卡插件,它可以实现页面内容的无刷新分页显示。使用时,需要将该插件集成到项目中,配置相应的参数,如请求地址、分页大小...

    AJAX——新手快车道

    **AJAX——新手快车道** 在当今的网页开发领域,AJAX(Asynchronous JavaScript and XML)已经成为不可或缺的技术,它让网页能够实现异步更新,无需每次用户交互都刷新整个页面。这个“新手快车道”将带你全面了解...

    ASP.NET源码——jquery无刷新分页、排序.zip

    然而,无刷新分页通过使用Ajax(异步JavaScript和XML)技术实现了页面内容的局部更新。jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理和Ajax交互等任务。在这个源码中,开发者可能使用了jQuery的Ajax...

Global site tag (gtag.js) - Google Analytics