您的位置:首页 > Web前端 > JavaScript

黑马程序员_javascript学习心得

2013-12-14 23:00 155 查看
                                                    ----------- android培训java培训、java学习型技术博客、期待与您交流! -----------

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

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: