pingpang

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

2012年8月16日 #

这几天自己琢磨起来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 @ 2012-08-16 22:41 往事随风 阅读(2063) | 评论 (1)编辑 收藏

昨天看到C#群里有人问一个投票功能如何实现...

我对此很感兴趣,为了练习一下,就有了以下代码。

投票功能使用jQuery实现..纯html代码...数据通过json字符串传递,通过 eval转换为json对象

投票功能分为:

1.设置投票内容:



2.投票:



3.投票结果:


文件列表:



传值:

{
    info: 
"   由京东针对国美苏宁发起的新一轮电商大战随着当当、易讯等企业的“乱入”,正演变为整个国内电商行业的混战。电商“8.15”价格战谁会是最后的赢家?今年的电商排位战,谁能笑到最后?<br/><br/>1.今年是电商排位战,你最看好谁?<br/>--------------------isea533----------------------",
    choices: [{
        name: 
"choice0",
        value: 
"京东商城",
        num: 
6,
        percent: 
0.25
    },
    {
        name: 
"choice1",
        value: 
"苏宁易购",
        num: 
5,
        percent: 
0.20833333333333334
    },
    {
        name: 
"choice2",
        value: 
"国美商城",
        num: 
4,
        percent: 
0.16666666666666666
    },
    {
        name: 
"choice3",
        value: 
"当当网",
        num: 
2,
        percent: 
0.08333333333333333
    },
    {
        name: 
"choice4",
        value: 
"亚马逊中国",
        num: 
3,
        percent: 
0.125
    },
    {
        name: 
"choice5",
        value: 
"天猫(原淘宝商城)",
        num: 
4,
        percent: 
0.16666666666666666
    }]
}


posted @ 2012-08-16 22:39 往事随风 阅读(2536) | 评论 (0)编辑 收藏

jQuery对象初始化的传参方式包括:
1.$(DOMElement)
2.$('<h1>...</h1>'), $('#id'), $('.class') 传入字符串, 这是最常见的形式, 这种传参数经常也传入第二个参数context指定上下文,其中context参数可以为$(...), DOMElement
3.$(function() {}); <===> $(document).ready(function() { });
4.$({selector : '.class', context : context}) <===> $('.class', context)

jQuery.fn = jQuery.prototype = {
    constructor: jQuery,
    init: function( selector, context, rootjQuery ) {
        var match, elem, ret, doc;

        // 处理$(""), $(null), $(undefined), $(false)这几种参数,直接返回this
        if ( !selector ) {
            return this;
        }

        // 当传参selector为DOM结点时,将context置为selector
        if ( selector.nodeType ) {
            this.context = this[0] = selector;
            this.length = 1;
            return this;
        }

        // Handle HTML strings
        // 当传入的selector参数为字符串时,
        if ( typeof selector === "string" ) {
            if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
                // Assume that strings that start and end with <> are HTML and skip the regex check
                match = [ null, selector, null ];

            } else {
                match = rquickExpr.exec( selector );
            }

            // Match html or make sure no context is specified for #id
            if ( match && (match[1] || !context) ) {

                // HANDLE: $(html) -> $(array)
                if ( match[1] ) {
                    context = context instanceof jQuery ? context[0] : context;
                    doc = ( context && context.nodeType ? context.ownerDocument || context : document );

                    // scripts is true for back-compat
                    selector = jQuery.parseHTML( match[1], doc, true );
                    if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
                        this.attr.call( selector, context, true );
                    }

                    return jQuery.merge( this, selector );

                // HANDLE: $(#id)
                } else {
                    elem = document.getElementById( match[2] );

                    // Check parentNode to catch when Blackberry 4.6 returns
                    // nodes that are no longer in the document #6963
                    if ( elem && elem.parentNode ) {
                        // Handle the case where IE and Opera return items
                        // by name instead of ID
                        if ( elem.id !== match[2] ) {
                            return rootjQuery.find( selector );
                        }

                        // Otherwise, we inject the element directly into the jQuery object
                        this.length = 1;
                        this[0] = elem;
                    }

                    this.context = document;
                    this.selector = selector;
                    return this;
                }

            // HANDLE: $(expr, $(...))
            } else if ( !context || context.jquery ) {
                return ( context || rootjQuery ).find( selector );

            // HANDLE: $(expr, context)
            // (which is just equivalent to: $(context).find(expr)
            } else {
                return this.constructor( context ).find( selector );
            }

        // HANDLE: $(function)
        // Shortcut for document ready
        // 当selector为function时相当于$(document).ready(selector);
        } else if ( jQuery.isFunction( selector ) ) {
            return rootjQuery.ready( selector );
        }

        // 当selector参数为{selector:'#id', context:document}之类时,重置属性selector和context
        if ( selector.selector !== undefined ) {
            this.selector = selector.selector;
            this.context = selector.context;
        }

        return jQuery.makeArray( selector, this );
    }
}; 
posted @ 2012-08-16 22:39 往事随风 阅读(1790) | 评论 (0)编辑 收藏