日期:2014-05-16  浏览次数:20845 次

ajax选择性局部刷新
先说明下代码需要实现的功能:选择不同的按钮之后,弹出一个相同的详细信息界面,然后利用ajax将按钮的id数据发送至后台处理,之后获取返回值并实时刷新详细信息界面的内容,隐藏详细信息界面后即可停止刷新......
根据网上搜索的许多ajax局部刷新示例,现写出了如下代码,但是总觉得有些繁琐,请大神们指点一下
先贴上前台jsp代码如下

<!-- 这是详细界面信息代码,默认是display:none隐藏的-->
<div id="transDetail" class="transDetail">
<h2 id="transId">1#变送器信息</h2>
<table>
<tr><td>A相电压</td><td><input type="text" value="0V" id="Avoltage"></td><td>A相电流</td><td><input type="text" value="0V"></td><td>有功功率</td><td><input type="text" value="0V"></td><tr>
<tr><td>B相电压</td><td><input type="text" value="0V"></td><td>B相电压</td><td><input type="text" value="0V"></td><td>无功功率</td><td><input type="text" value="0V"></td><tr>
<tr><td>C相电压</td><td><input type="text" value="0V"></td><td>C相电压</td><td><input type="text" value="0V"></td><td>视在功率</td><td><input type="text" value="0V"></td><tr>
<tr><td>AB线电压</td><td><input type="text" value="0V"></td><td>相电流平均值</td><td><input type="text" value="0V"></td><td>功率因数</td><td><input type="text" value="0V"></td><tr>
<tr><td>BC线电压</td><td><input type="text" value="0V"></td><td>相电压平均值</td><td><input type="text" value="0V"></td><td>频率</td><td><input type="text" value="0V"></td><tr>
<tr><td>CA线电压</td><td><input type="text" value="0V"></td><td>线电压平均值</td><td><input type="text" value="0V"></td><td colspan="2"><input type="button" value="隐藏信息" id="hidetrandeta"></td><tr>
</table>
</div>
<!-- 下面是3个不同的按钮-->
<div id="transmission0"><button class="trans" value="0#变速器">0#变送器</button></div>
<div id="transmission1"><button class="trans" value="1#变速器">1#变送器</button></div>
<div id="transmission2"><button class="trans" value="2#变速器">2#变送器</button></div>


以下是js代码,因为本人是刚刚入门的菜鸟,不会使用JQuery的ajax方法,所以用的是以前原始的ajax方法~~

//设置不同按钮id的全局变量
var tranId;

function createXmlReqest(){
var myrequest="";
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
myrequest=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
myrequest=new ActiveXObject("Microsoft.XMLHTTP");
  }
 return myrequest;
}
//post请求ajax局部刷新
function getajaxTransDetail(){
myrequest = createXmlReqest();
var url="doGetTransDetail.action";
//定时刷新得到
var fresh = window.setInterval(function(){
var data="tranId="+tranId;//必须连同tranId一起刷新,因为tranId会随着选择内容变化
myrequest.open("POST",url,true);
myrequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myrequest.send(data);
myrequest.onreadystatechange=function(){
if(myrequest.readyState==4){
if(myrequest.status==200){
v