javascript学习心得

javascript学习心得

这几天自己琢磨起来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);



更多信息请访问 java教程网 www.itchm.com

你可能感兴趣的:(javascript学习心得)