pingpang

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  21 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

这几天自己琢磨起来javascript,以前都是看看没有实战过,现在觉得实战起来果然错误多多,以后要不断总结错误,关键可以减少调试时间,菜鸟啊:

1.js通常有一个地方错误了, 下边的函数都不会再继续执行啦(本来觉得很正常的事,但是...)

2.为什么open()请求服务器的时候,请求的servlet后边要加一个参数变化,告知服务器这是一个新的请求???否则在IE8中请求失败

var bojingNum = 0;
//定义一个变量用来存储xmlHttpRequest对象
  var xmlHttp=null;
  //该函数用于创建一个xmlHttpRequest对象
  function createXMLHttpRequest()
  {
    if (window.ActiveXObject)//ActiveXObject这个对象是IE浏览器提供的控件,所以有的网银只支持这样的控件的IE浏览器
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE浏览器生成的对象
        
    } else if (window.XMLHttpRequest)//除了IE外的其他浏览器
    {
        xmlHttp = new XMLHttpRequest();
    }
  }
  //这是一个通过ajax刷新统计图的方法
  function  autoFlush()
  {
      //创建日期变量时间变量
      var tempTime = new Date();
      var tempParameter = tempTime.getTime();
      //创建一个xmlHttpRequest对象
      createXMLHttpRequest();
      if(xmlHttp!=null)
      {
      //这里放置一个时间参数是为了让服务器知道这是一个新的请求
      xmlHttp.open("GET", "SerialDataSvt?tmd="+tempParameter);
       //将状态触发器绑定到一个函数
      xmlHttp.onreadystatechange=processor;
      
      //请求发送
      xmlHttp.send(null);
      }
     
      
  }
  //处理从服务器返回的xml文档
  function processor()
  {
      //定义一个变量用于存储从服务器返回的结果
      var  result;
      if(xmlHttp.readyState==4)//如果响应完成
          {
             if(xmlHttp.status==200)//如果返回成功
                 {
                
                   //取出服务器返回的xml文档的所有counter标签的子节点
                 result = xmlHttp.responseXML.getElementsByTagName("data");//alert(result);
            
                //解析xml中的数据并更新统计图状态
                
                 for(var i = 0 ; i < result.length; i++)
                     {
                          //用于统计数据更新统计图片状态
                     var id =result[i].getAttribute("id");//alert(id);
                     var dir =result[i].getAttribute("dir"); //alert(dir);
                    
                    var  datas =xmlHttp.responseXML.getElementsByTagName("dataContent")[0].childNodes[0].nodeValue;
                    var  addTime =xmlHttp.responseXML.getElementsByTagName("addTime")[0].childNodes[0].nodeValue;
                    
                    
                        if(datas.substring(17,18)=="1")
                            { 
                             document.getElementById("yujing"+(i+1)).innerHTML="<embed   src='video/wartgroud.mp3'  type=audio/x-ms-wma autostart='true' loop='true'>报警中</embed> ";
                             document.getElementById("yujingPic"+(i+1)).style.display = 'block';
                            bojingNum++;
                            document.getElementById("yujingNum"+(i+1)).innerHTML="预警次数:"+bojingNum;
                            }
                        else
                            {
                            document.getElementById("yujing"+(i+1)).innerHTML="暂无报警";
                             document.getElementById("yujingPic"+(i+1)).style.display = 'none';
                            }
                     document.getElementById("n_nodeID"+i).innerHTML= id+dir;
                     document.getElementById("n_nodeData"+i).innerHTML= datas; 
                     document.getElementById("n_nodeTime"+i).innerHTML= addTime; 
                     
                     document.getElementById("s_nodeID"+i).innerHTML= id+dir;
                     document.getElementById("s_nodeData"+i).innerHTML= datas; 
                     document.getElementById("s_nodeTime"+i).innerHTML= addTime; 
                     
                     document.getElementById("e_nodeID"+i).innerHTML= id+dir;
                     document.getElementById("e_nodeData"+i).innerHTML= datas; 
                     document.getElementById("e_nodeTime"+i).innerHTML= addTime; 
                     
                     document.getElementById("w_nodeID"+i).innerHTML= id+dir;
                     document.getElementById("w_nodeData"+i).innerHTML= datas; 
                     document.getElementById("w_nodeTime"+i).innerHTML= addTime; 
          
                     }
                 }
          }  
  }
  //每隔一秒就执行一次autoFlush方法
 setInterval(autoFlush, 2000);

posted on 2012-08-16 22:41 往事随风 阅读(2063) 评论(1)  编辑  收藏

Feedback

# re: javascript学习心得 2013-07-05 02:56 陈琼芳
好,非常好。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: