java:ajax实现无跳转刷新的三种方法

  1. 概述
    实现无跳转刷新,其实就是将请求通过ajax的方式提交给servlet,而不是提交整个jsp页面,通过ajax的方式能够减少网络传输的压力,反应速度要比.jsp快。
  2. servlet端代码实现
    2.1 把.jsp页面中需要刷新的代码重写,即直接输出HMTL方式
    优点:简单,直接
     缺点:需要传送大量数据,网络压力较大
    2.2 采用拼接字符串的形式返回,在客户端进行字符串的解析即可
    优点:只传输数据部分,对网络压力最小
    2.3 采用直接输出XML的方式
    优点:简单直观,方便客户端解析,以及和其他系统对接,方便实现WebService
  3. jsp端js控制反馈及html的代码实现
    function dealResult()
    {
    	if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
    	{
    		//针对方式一:返回HTML方式
    		//document.getElementById("blockInfo").innerHTML = xmlHttp.responseText;
    		//init();
    		
    		//针对方式二:拼接字符串方式
    		/*
    		var infoList = xmlHttp.responseText.split(";");
    		var table = document.getElementsByTagName("table")[0];
    		while(table.rows.length > 2)
    		{
    			table.deleteRow(table.rows.length - 2);
    		}
    		for(var i = 0; i < infoList.length - 1; i++)
    		{
    			var infoNews = infoList[i].split(",");
    			var otr = table.insertRow(table.rows.length - 1);
    			var td1 = otr.insertCell(0);
    			var td2 = otr.insertCell(1);
    			var td3 = otr.insertCell(2);
    			var td4 = otr.insertCell(3);
    			var td5 = otr.insertCell(4);
    			var td6 = otr.insertCell(5);
    			td1.innerHTML = "<input type='checkbox' name='" + infoNews[0] + "\'/>";
    			td2.innerHTML = "<a href='querynews.jsp?id=" + infoNews[0] + "'>" + infoNews[1] + "</a>";
    			td3.innerHTML = infoNews[2];
    			td4.innerHTML = infoNews[3];
    			td5.innerHTML = infoNews[4];
    			td6.innerHTML = "<a href='modifynews.jsp?id=" + infoNews[0] + "'><img src='images/edt.gif' align='middle' border='0'/></a> " +
    							"<a href='modifynews.jsp?id=" + infoNews[0] + "'>编辑  </a>" +
    							"<a href='/NewsManage/News?type=del&Id=" + infoNews[0] + "'> <img src='images/del.gif' align='middle' border='0' /></a>" +
    							"<a href='/NewsManage/News?type=del&Id=" + infoNews[0] + "'>删除</a>";
    		}
    		var totalPageDiv = document.getElementById("totalPage");
    		var pageInfo = infoList[infoList.length - 1].split(",");
    		totalPageDiv.innerHTML = "共有 " + pageInfo[0] + " 条记录,当前第 " + pageInfo[1] + "/" + pageInfo[2] + " 页";
    		var turnPageDiv = document.getElementById("turnPage");
    		var turnStr = "<a href=\"javascript:PageShow('1')\"><img src='images/first.gif' width='37' height='15' border='0' /></a>";
    		var currentPage = parseInt(pageInfo[1]);
    		var pageCount = parseInt(pageInfo[2]);
    		if(currentPage > 1)
    		{
    			turnStr += "<a href=\"javascript:PageShow('" + (currentPage - 1) + "')\"><img src='images/back.gif' width='43' height='15' border='0' /></a>";
    		}
    		if(currentPage < pageCount)
    		{
    			turnStr += "<a href=\"javascript:PageShow('" + (currentPage + 1) + "')\"><img src='images/next.gif' width='43' height='15' border='0' /></a>";
    		}
    		turnStr += "<a href=\"javascript:PageShow('" + pageInfo[2] + "')\"><img src='images/last.gif' width='37' height='15' border='0' /></a>";
    		turnStr += "<div class='topage'>转到第 <input name='pageindex' type='text' size='4' class='pageinput' /> 页 </div>";
    		turnStr += "<a href='javascript:PageShow(-1)'><img src='images/go.gif' width='37' height='15' border='0' /></a>";
    		turnPageDiv.innerHTML = turnStr;
    		init();
    		*/
    		
    		//针对方式三:XML方式
    		var newsList = xmlHttp.responseXML.documentElement.getElementsByTagName("news");
    		var table = document.getElementsByTagName("table")[0];
    		while(table.rows.length > 2)
    		{
    			table.deleteRow(table.rows.length - 2);
    		}
    		for(var i = 0; i < newsList.length; i++)
    		{
    		/* 	var id = newsList[i].getAttribute("id");
    			var title = newsList[i].getElementsByTagName("title")[i].firstChild.nodeValue;
    			var author = newsList[i].getElementsByTagName("author")[i].firstChild.nodeValue;
    			var date = newsList[i].getElementsByTagName("date")[i].firstChild.nodeValue;
    			var catalog = newsList[i].getElementsByTagName("catalog")[i].firstChild.nodeValue;  */
    			var otr = table.insertRow(table.rows.length - 1);
    			var td1 = otr.insertCell(0);
    			var td2 = otr.insertCell(1);
    			var td3 = otr.insertCell(2);
    			var td4 = otr.insertCell(3);
    			var td5 = otr.insertCell(4);
    			var td6 = otr.insertCell(5);
    			td1.innerHTML = "<input type='checkbox' name='" + newsList[i].getAttribute("id") + "\'/>";
    			td2.innerHTML = "<a href='querynews.jsp?id=" + newsList[i].getAttribute("id") + "'>" + newsList[i].getElementsByTagName("title")[0].firstChild.nodeValue + "</a>";
    			td3.innerHTML = newsList[i].getElementsByTagName("author")[0].firstChild.nodeValue;
    			td4.innerHTML = newsList[i].getElementsByTagName("catalog")[0].firstChild.nodeValue;
    			td5.innerHTML = newsList[i].getElementsByTagName("date")[0].firstChild.nodeValue;
    			td6.innerHTML = "<a href='modifynews.jsp?id=" + newsList[i].getAttribute("id") + "'><img src='images/edt.gif' align='middle' border='0'/></a> " +
    							"<a href='modifynews.jsp?id=" + newsList[i].getAttribute("id") + "'>编辑 </a>" +
    							"<a href='/NewsManage/News?type=del&Id=" + newsList[i].getAttribute("id") + "'> <img src='images/del.gif' align='middle' border='0' /></a>" +
    							"<a href='/NewsManage/News?type=del&Id=" + newsList[i].getAttribute("id") + "'>删除</a>"; 
    			var totalPageDiv = document.getElementById("totalPage");
    			var pageinfo = xmlHttp.responseXML.documentElement.getElementsByTagName("pageinfo");
    			var totalCount = pageinfo[0].getElementsByTagName("totalCount")[0].firstChild.nodeValue;
    			var currentPage = pageinfo[0].getElementsByTagName("currentPage")[0].firstChild.nodeValue;
    			var pageCount = pageinfo[0].getElementsByTagName("pageCount")[0].firstChild.nodeValue;
    			totalPageDiv.innerHTML = "共有 " + totalCount + " 条记录,当前第 " + currentPage + "/" + pageCount+ " 页";
    			var turnPageDiv = document.getElementById("turnPage");
    			var turnStr = "<a href=\"javascript:PageShow('1')\"><img src='images/first.gif' width='37' height='15' border='0' /></a>";
    			var IntcurrentPage = parseInt(currentPage);
    			var IntpageCount = parseInt(pageCount);
    			if(IntcurrentPage > 1)
    			{
    				turnStr += "<a href=\"javascript:PageShow('" + (IntcurrentPage - 1) + "')\"><img src='images/back.gif' width='43' height='15' border='0' /></a>";
    			}
    			if(IntcurrentPage < IntpageCount)
    			{
    				turnStr += "<a href=\"javascript:PageShow('" + (IntcurrentPage + 1) + "')\"><img src='images/next.gif' width='43' height='15' border='0' /></a>";
    			}
    			turnStr += "<a href=\"javascript:PageShow('" + IntpageCount + "')\"><img src='images/last.gif' width='37' height='15' border='0' /></a>";
    			turnStr += "<div class='topage'>转到第 <input name='pageindex' type='text' size='4' class='pageinput' /> 页 </div>";
    			turnStr += "<a href='javascript:PageShow(-1)'><img src='images/go.gif' width='37' height='15' border='0' /></a>";
    			turnPageDiv.innerHTML = turnStr;
    			init();
    		}
    	}
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值