pingpang

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            21 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

          2012年8月16日 #

          這幾天自己琢磨起來javascript,以前都是看看沒有實戰過,現在覺得實戰起來果然錯誤多多,以后要不斷總結錯誤,關鍵可以減少調試時間,菜鳥?。?/p>

          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 往事隨風 閱讀(2103) | 評論 (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 往事隨風 閱讀(2553) | 評論 (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 往事隨風 閱讀(1809) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 青川县| 黎川县| 余庆县| 罗平县| 恩平市| 德化县| 弋阳县| 博野县| 西林县| 库伦旗| 镇平县| 广河县| 西盟| 卢氏县| 谢通门县| 通辽市| 阿拉善盟| 凉山| 邯郸市| 民和| 咸宁市| 左云县| 建瓯市| 迁安市| 巨野县| 金湖县| 桃园市| 和硕县| 监利县| 阳原县| 东明县| 黎平县| 铁岭县| 河池市| 阿克苏市| 遵义县| 泽库县| 舟山市| 梧州市| 昌宁县| 凌云县|