WEB入門十一 JS面向對象

      網友投稿 622 2025-03-31

      學習內容


      JavaScript類的定義模式

      JavaScript繼承的實現

      JavaScript抽象類

      JavaScript解析XML

      能力目標

      深入了解JavaScript類的定義模式

      理解JavaScript繼承

      理解JavaScript抽象類和虛函數

      熟練使用JavaScript進行XML解析

      本章簡介

      上一章學習了JavaScript高級編程,包括匿名函數、內部函數、回調函數以及使用JavaScript解析JSON格式的數據,另外還學習了基礎的JavaScript面向對象編程,包括類的定義和對象的創建。本章繼續深入學習JavaScript面向對象編程,會涉及到類的多種定義模式、繼承、抽象類等高級內容。

      核心技能部分

      2.1?類的定義模式

      JavaScript并不像C#、Java一樣支持真正的類。但是在上一章,可以通過函數來模擬類的定義,實際上JavaScript支持多種類的定義模式,例如構造函數模式、原型模式等。

      2.1.1?構造函數模式

      構造函數模式是最常用的一種類的定義模式,上一章的示例1.6就是通過構造函數模式來定義類的。下面再使用構造函數模式定義一個Person類。參考代碼如下所示。

      示例2.1

      上述代碼使用一個函數模擬定義了一個School類

      從運行結果來看,School函數執行了,同時zy獲得了一個對象的引用。事實上,當new一個函數時,這個函數就表示構造函數,該函數里面的代碼可以看做是為了初始化一個對象而工作。

      構造函數通常沒有返回值,并且在函數內部使用this關鍵字表示新創建的對象。構造函數首字母通常大寫,這也是為了符合OOP的編碼慣例,也為了跟普通函數進行區別。

      在JavaScript中通過構造函數創建對象的過程總結如下:

      1.瀏覽器解釋器遇到new關鍵字時創建一個空對象

      2.執行構造函數,并將this指針指向新建的對象

      3.初始化屬性和方法

      4.函數執行完畢就返回初始化后的對象

      2.1.2?原型模式

      prototype即原型,它本身就是一個對象。每個函數(類)都有一個prototype屬性(子對象),它表示類的成員集合。當使用new創建對象時,prototype對象的成員都會成為新建對象的成員。

      我們首先通過一個例子來演示什么是prototype以及它的用法,參考代碼如下所示。

      示例2.2

      上述代碼首先定義了一個空類,然后使用prototype定義了該類的屬性和方法,運行效果跟示例2.1一樣。上述代碼有一個問題就是每定義一個屬性或方法就需要寫一次School.prototype,我們可以做如下改進。

      示例2.3

      上述代碼通過大括號把成員集中添加到了prototype對象上,寫法更加簡潔清晰。prototype對象專用于設計類的成員,是JavaScript實現面向對象編程的重要手段。在JavaScript中通過原型創建對象的過程總結如下:

      1.瀏覽器解釋器遇到new關鍵字時創建一個空對象

      2.將this指針指向新建的對象

      3.把prototype對象的所有成員賦給新建的對象

      4.返回初始化后的對象

      2.1.3?兩種模式的不同之處

      構造函數模式和原型模式都能定義類,但是這兩種模式之間有著本質的區別。下面我們通過例子進行對比。

      示例2.4

      示例2.4使用的是前面的例子,通過構造函數定義了一個School類,并創建了該類的兩個對象s1和s2。

      在JavaScript中,函數就是類,所以School類中的teach函數其實就是一個對象。這會產生這樣一個問題:每次創建一個School類的對象就會創建一個teach對象,而每個teach所實現的功能是一模一樣的,沒必要多次創建,這是通過構造函數定義類的一個缺點。

      下面我們使用原型也定義一個和上面一樣的School類,同樣也創建該類的兩個對象s1和s2,參考代碼如下所示。

      示例2.5

      直接看運行效果,如圖2.1.3所示。上述代碼雖然使用new創建了兩個對象,但是通過運行結果會發現,這兩個對象中的成員的值一樣,第2個對象采用的仍然是第1個對象的值。原型中的所有成員是被類的所有對象共享的,類似于Java類中的靜態成員,即無法像構造函數那樣創建不同的對象,這是通過原型定義類的一個缺點。

      2.1.4?兩種模式組合使用

      由于構造函數模式和原型模式各有優缺點,所以在實際開發中通常組合使用兩種模式來定義類。構造函數負責定義類中的屬性,原型負責定義類中的方法,這樣創建的每個對象就會有不同的屬性值,同時又不會每次都創建類中的函數對象,節省了內存。

      下面我們組合使用兩種模式定義School類,參考代碼如下所示。

      示例2.6

      上述代碼通過帶參的構造函數給屬性傳值,通過prototype定義方法。這種組合模式是ECMAScript中使用最廣泛、認同度最高的一種定義類的方式。

      2.2?繼承

      JavaScript沒有專門的機制來實現繼承。ECMAScript中提出了原型鏈的概念,并將原型鏈作為實現繼承的主要方式,其基本思想是利用原型讓一個自定義類繼承另一個類的屬性和方法。

      示例2.7

      上述代碼定義了兩個對象,分別是父類Person和子類Student。子類Student通過Student.prototype=new Person(); 繼承了父類Person,這就是原型繼承。另外,子類Student重寫了父類Person中的sayHello方法,還定義了自己獨有的屬性score和方法getDetials。

      需要注意的是:子類重寫父類方法的代碼以及定義自身獨有方法的代碼必須出現在原型繼承Student.prototype=new Person(); 之后。

      JavaScript也可以像Java一樣,在定義子類時調用父類的構造方法為屬性賦值。下面我們把示例2.7中的子類Student修改為帶參數的構造方法,參考代碼如下所示。

      示例2.8

      上述代碼使用帶參數的構造函數定義了一個子類Student,在子類的構造函數中使用Person.call(this,n,a,p);調用了父類的構造函數。call方法用來綁定到某個函數上進行自身調用,第一個參數this表示函數本身,后面的都是函數的參數。

      2.3?解析XML

      XML是指可擴展標記語言(Extensible ?Markup ?Language),類似于HTML。它是W3C的推薦標準,其設計宗旨是存儲和傳輸數據而非顯示數據。XML標簽沒有被預定義,需要開發人員自定義標簽。

      XML的主要作用可以概括為以下6個:

      (1)使數據從HTML分離。

      如果需要在HTML文檔中顯示動態數據,則每次數據改變時將花費大量的時間來編輯HTML。通過XML,數據能夠存儲在獨立的XML文件中,從而專注地使用HTML進行布局和顯示,且修改底層數據時無須再次對HTML進行任何改變。通過幾行JavaScript即可讀取一個外部XML文件,然后更新HTML中的數據內容。

      (2)簡化數據共享。

      XML數據以純文本格式進行存儲,提供了一種獨立軟件和硬件的數據存儲方法,使創建不同應用程序共享的數據變得更加容易。

      (3)簡化數據傳輸。

      通過XML可以在不兼容的系統之間輕松交換數據。對于開發人員而言,在因特網上不兼容的系統之間交換數據特別耗費時間。可以通過各種不兼容的應用程序來讀取數據,使用XML交換數據可以降低這種復雜性。

      (4)簡化平臺的變更。

      升級到新系統(硬件或軟件平臺)相對費時的情況下,不兼容的數據在轉換大量的數據時經常丟失。XML數據以文本格式存儲,這使XML可以在不丟失數據的前提下更易于擴展或升級到新的操作系統、應用程序或瀏覽器。

      (5)延伸了數據使用。

      XML獨立于硬性、軟件以及應用程序之外,使數據更可用、有用。不同的應用程序都能夠在HTML頁面以及XML數據源中訪問。通過XML的數據不僅可以供各種閱讀設備(手持計算機、語音設備、新聞閱讀器等)使用,還可以供盲人等殘障人士使用。

      2.3.1?節點和節點樹

      根據DOM的規定,XML文檔中每個單元(元素、屬性、文本、注釋等)都是節點。例如:

      (1)整個文檔是一個文檔節點。

      (2)每個XML標簽是一個元素節點。

      (3)包含在XML元素中的文本是文本節點。

      (4)每個XML屬性是一個屬性節點。

      (5)注釋屬于注釋節點。

      XML DOM將XML文檔視為樹結構,這種樹結構被稱為節點樹。程序通過節點樹訪問所有節點、修改或刪除其內容以及創建新元素。節點樹展示了節點的集合以及它們之間的關系。節點樹從根節點開始,在樹的最低層級向文本節點長出“枝條”。

      下面我們編寫一個描述和存儲圖書信息的book.xml,并給出節點數的圖形,參考代碼如下所示。

      示例2.9

      Harry Potter

      J K. Rowling

      2005

      29.99

      Everyday Italian

      Giada De Laurentiis

      2005

      30.00

      Learning XML

      Erik T. Ray

      2003

      39.95

      XQuery Kick Start

      James McGovern

      Per Bothner

      Kurt Cagle

      James Linn

      Vaidyanathan Nagarajan

      2003

      49.99

      將示例2.9中的books.xml使用節點樹表示

      下面我們分析一下book.xml文件:

      (1)根節點是,文檔中所有的其他節點都包含在中。

      (2)根節點包含4個節點。

      (3)第一個節點包含4個節點:、<author>、<year>和<price>。其中,每個節點包含一個文本節點(分別為Harry Potter、J K.Rowling、2005和29.99)。</p><p>(4)元素節點的文本存儲在文本節點中。<year>2005</year>中,元素節點<year>擁有一個值為“2005”的文本節點,“2005”不是<year>元素的值。</p><p>(5) 屬性節點與子元素屬于同一級別的節點。例如,<book>元素的屬性“category”與<book>的子元素<title>同級。</p><p>2.3.2?DOM編程接口</p><p>由于客戶端無法識別并讀取Java對象數據,所以,在Web開發中,服務器端經常返回的是XML數據。因此,客戶端需要使用JavaScript解析XML數據。</p><p>XML DOM對象中封裝了常用的操作XML文檔的屬性和方法。常用的XML DOM對象如下:</p><p>(1)XML DOM Attr對象:表示Element對象的屬性。</p><p>(2)XML DOM Comment對象:表示文檔中注釋節點的內容。</p><p>(3)XML DOM Document對象:表示整個XML文檔。</p><p>(4)XML DOM Element對象:表示XML文檔中的元素。</p><p>(5)XML DOM Node對象:表示文檔樹中的一個節點。</p><p>(6)XML DOM Text對象:表示元素或屬性的文本內容。</p><p>(7) XML DOM XMLHttpRequest對象:提供對HTTP協議的訪問,包括發出POST、HEAD以及普通GET請求的能力。XMLHttpRequest可以同步或異步地返回Web服務器的響應,并且通過文本或者一個DOM文檔的形式返回內容。此對象并不限于和XML文檔一起使用,可以接收任何形式的文本文檔。</p><p>瀏覽器都內建了用于讀取和操作XML文件的XML解析器。解析器將XML讀入內存,并轉換為可以被JavaScript訪問的XML DOM對象。</p><p>XML數據可以通過XML文檔保存在磁盤介質上,或者通過XML字符串在內存中創建。XMLDocument對象將XML文檔和XML字符串加載到內存,然后通過JavaScript實現DOM解析。如果XML文檔需要在服務端解析,還可以使用C#、Java等編程語言通過DOM API進行解析。</p><p>使用JavaScript實現DOM時,不同瀏覽器的加載方式有所不同。</p><p>1.使用load ( )方法加載XML文檔</p><p>示例2.10</p><p><script></p><p>//IE瀏覽器</p><p>xmlDoc = new ActiveXObject("Microsoft.XMLDOM");</p><p>xmlDoc.async = false;</p><p>xmlDoc.load("book.xml");</p><p></script></p><p>示例2.11</p><p><script></p><p>//Firefox、Mozilla等瀏覽器</p><p>xmlDoc = document.implementation.createDocument("", "", null);</p><p>xmlDoc.async = false;</p><p>xmlDoc.load("book.xml");</p><p></script></p><p>在示例2.10和示例2.11中,第一行代碼用于在瀏覽器中創建空的XML Document對象;第二行關閉異步加載,可以確保在文檔完整加載之前,解析器不會繼續執行腳本;第三行通知解析器加載名為“books.xml”的文檔。在實際開發中可以通過異常處理來編寫通用的瀏覽器加載方法。示例2.12通過異常處理模塊編寫跨瀏覽器的XML文檔加載代碼。</p><p>示例2.12</p><p><script></p><p>try {</p><p>xmlDoc = new ActiveXObject("Microsoft.XMLDOM");</p><p>} catch (e) {</p><p>try {</p><p>xmlDoc = document.implementation.createDocument("", "", null);</p><p>} catch (e) {</p><p>alert(e.message);</p><p>}</p><p>}</p><p>try {</p><p style="text-align:center"><img src="http://m.bai1xia.com/news/zb_users/cache/ly_autoimg/o/ODEyNg.jpg" alt="WEB入門之十一 JS面向對象" title="WEB入門之十一 JS面向對象" /></p><p>xmlDoc.async = false;</p><p>xmlDoc.load("book.xml");</p><p>document.write("XML文檔已經加載完畢,可以進行解析了。<br>");</p><p>} catch (e) {</p><p>alert(e.message);</p><p>}</p><p></script></p><p>2.使用loadXml()方法加載XML文本</p><p>如果服務器端返回的不是xml文件,而是xml格式的文本信息,那么在IE瀏覽器中使用XML Document對象的loadXml()方法加載XML文本;在Firefox等瀏覽器中使用DOM解析器對象DOMParser的parseFromString()方法加載XML文本。</p><p>下面我們通過一個例子來演示加載XML文本,參考代碼如下所示。</p><p>示例2.13</p><p><script type="text/javascript"></p><p>text = "<bookstore>";</p><p>text = text + "<book>";</p><p>text = text + "<title>Harry Potter";

      text = text + "J K. Rowling";

      text = text + "2005";

      text = text + "";

      text = text + "";

      try

      {

      xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

      xmlDoc.async = "false";

      } catch (e) {

      try

      {

      parser = new DOMParser();

      xmlDoc = parser.parseFromString(text, "text/xml");

      } catch (e) {

      alert(e.message);

      }

      }

      try {

      xmlDoc.loadXML(text);

      document.write("XML字符串已經加載完畢,可以進行解析了。");

      } catch (e) {

      alert(e.message);

      }

      節點操作通過XML DOM對象的屬性和方法實現。對象多達幾十個,并且每個對象都有各自的屬性和方法,常用對象的屬性和方法見

      XML DOM對象常用屬性

      屬性

      說明

      nodeName

      獲取節點名稱

      nodeValue

      獲取節點的值

      parentNode

      獲取節點的父節點

      childNodes

      獲取節點的所有子節點集合

      attributes

      獲取當前節點所有的屬性節點

      documentElement

      獲取文檔的根節點

      表2-1-2 ?XML DOM對象常用方法

      方法

      說明

      getElementsByTagName(name)

      獲取帶有指定標簽名(name)的所有元素

      CreateElement(name)

      創建指定標簽名的元素節點

      appendChild(node)

      向調用節點末尾插入子節點node

      removeChild(node)

      從調用節點中刪除子節點node

      下面是一個通過XML DOM對象的屬性和方法來解析book.xml的例子,參考代碼如下所示。

      示例2.14

      對示例2.14的說明如下:

      (1)xmlDoc:由解析器創建的XML Document對象,創建方式見示例2.13。

      (2)getElementsByTagName("title")[0]:獲取第一個元素。</p><p>(3)childNodes[0]:獲取<title>元素的第一個子節點(文本節點)。</p><p>(4)nodeValue:獲取節點的值(文本自身)。</p><p>訪問節點包括遍歷節點、定位節點、獲取節點的詳細信息等操作,這些操作都通過XML DOM的屬性和方法實現。通常,訪問節點需要使用對象XML Node List和XML Node。前者表示一個節點列表(集合),后者表示一個節點。每個節點都具有nodeName、nodeValue和nodeType屬性,分別用于獲得節點名稱、節點值和節點的類型。元素節點還可以通過attributes屬性返回屬性節點的列表。</p><p>??nodeName。其特點是:nodeName是只讀的;元素節點的nodeName與標簽名相同;屬性節點的nodeName是屬性的名稱。</p><p>??nodeType。nodeType屬性規定節點的類型,是只讀的。nodeType常用的值包括:“1”</p><p>表示節點是元素節點:“2”表示節點是屬性節點;“3”表示節點是文本節點;“8”</p><p>表示節點是注釋節點。</p><p>??nodeValue。其特點是:元素節點的nodeValue是不可用的;文本節點的nodeValue是文本自身;屬性節點的nodeValue是屬性的值。</p><p>在DOM層次中還可以通過以下3種方法查找和定位節點:</p><p>(1)使用getElementsByTagName()方法。</p><p>(2)循環(遍歷)節點樹。</p><p>(3)通過節點的層次關系在節點樹中導航,見表2-1-3。</p><p>表2-1-3 ?節點層次關系</p><p>屬性</p><p>功能</p><p>parentNode</p><p>獲取父節點</p><p>childNodes</p><p>獲取子節點集合</p><p>firstChild</p><p>獲取第一個子節點</p><p>lastChild</p><p>獲取最后一個子節點</p><p>nextSibling</p><p>獲取同級別中后一個節點</p><p>previousSibling</p><p>獲取同級別中前一個節點</p><p>下面我們通過一個例子來演示如何使用節點層次關系來解析book.xml文件,參考代碼如下所示。</p><p>示例2.15</p><p><script></p><p>try {</p><p>xmlDoc = new ActiveXObject("Microsoft.XMLDOM");</p><p>} catch (e) {</p><p>try {</p><p>xmlDoc = document.implementation.createDocument("", "", null);</p><p>} catch (e) {</p><p>alert(e.message);</p><p>}</p><p>}</p><p>try {</p><p>xmlDoc.async = false;</p><p>xmlDoc.load("book.xml");</p><p>} catch (e) {</p><p>alert(e.message);</p><p>}</p><p>var nlist = xmlDoc.getElementsByTagName("book")[0].childNodes;</p><p>document.write("<br>book節點包含子元素的個數: " + nlist.length);</p><p>document.write("<br>");</p><p>for ( var i = 0; i < nlist.length; i++) {</p><p>var node = nlist[i];</p><p>alert(node.nodeType);</p><p>document.write("子元素的名字:" + node.nodeName + ",子元素的值:"</p><p>+ node.childNodes[0].nodeValue);</p><p>var att = node.attributes;//獲取該元素的全部屬性節點</p><p>for ( var j = 0; j < att.length; j++) {</p><p>document.writeln("<br/>子元素" + node.nodeName + "有屬性"</p><p>+ att[i].nodeName + "=" + att[i].nodeValue);</p><p>}</p><p>document.write("<br/>");</p><p>}</p><p></script></p><p>上述代碼首先使用getElementsByTagName("book")[0].childNodes獲得了book下的所有子節點,然后使用for循環遍歷這個子節點集合,在循環過程中輸出每個節點的名字和值,有屬性的同時使用for循環輸出屬性節點的名字和值。</p><p>本章總結</p><p>本章在上一章的基礎上進一步講解了JavaScript面向對象編程,包括類的定義模式和繼承等,這一部分內容著重強調理解,大家可以結合Java面向對象編程思想幫助自己理解。JavaScript解析XML在實際開發中應用頻繁,大家必須要掌握熟練。</p><p>任務實訓部分</p><p>1:自定義類</p><p>訓練技能點</p><p>??構造函數模式</p><p>??原型模式</p><p>需求說明</p><p>使用構造函數模式和原型模式組合定義一個員工類,包括員工姓名、職位和工資,以及</p><p>開會的方法。創建兩個員工對象進行測試。</p><p>2:JavaScript繼承</p><p>訓練技能點</p><p>通過prototype實現繼承</p><p>需求說明</p><p>首先定義一個寵物類(Pet)作為父類,屬性和方法自定義;然后定義一個Dog類和Cat類都繼承Pet類;最后創建一個Dog對象和Cat對象進行測試。</p><p>3:解析XML文件</p><p>訓練技能點</p><p>??JavaScript解析XML文件</p><p>需求說明</p><p>創建一個XML文件存儲3個學生信息(姓名、性別、成績);使用JavaScript解析該文件并逐行輸出這3個學生的所有信息。</p><p>實現步驟</p><p>(1)定義一個XML文件存儲3個學生信息</p><p>(2)使用JavaScript解析XML文件并輸出,參考代碼如下所示。</p><p><script></p><p>try {</p><p>xmlDoc = new ActiveXObject("Microsoft.XMLDOM");</p><p>} catch (e) {</p><p>try {</p><p>xmlDoc = document.implementation.createDocument("", "", null);</p><p>} catch (e) {</p><p>alert(e.message);</p><p>}</p><p>}</p><p>try {</p><p>xmlDoc.async = false;</p><p>xmlDoc.load("students.xml");</p><p>} catch (e) {</p><p>alert(e.message);</p><p>}</p><p>var stus=xmlDoc.getElementsByTagName("student");</p><p>for(var j=0;j<stus.length;j++)</p><p>{</p><p>var stu=stus[j].childNodes;</p><p>for(var k=0;k<stu.length;k++)</p><p>{</p><p>document.write(stu[k].firstChild.nodeValue+" ");</p><p>}</p><p>document.write("<br/>");</p><p>}</p><p></script></p><p>4:解析XML文本</p><p>訓練技能點</p><p>??JavaScript解析XML文本</p><p>需求說明</p><p>通過字符串存儲XML格式的數據:3個員工信息(姓名、職務、工資),然后使用JavaScript解析該XML文本并逐行輸出這3個員工的所有信息。</p><p>鞏固練習</p><p>一、選擇題</p><p>1. 以下關于JavaScript構造函數說法正確的是()。</p><p>A.?JavaScript類不存在構造函數</p><p>B.?JavaScript類的構造函數必須帶有參數</p><p>C.?構造函數首字符必須大寫</p><p>D.?構造函數中的this表示新建的對象</p><p>2.?以下關于JavaScript原型的說法錯誤的是()。</p><p>A.?原型也是一個對象</p><p>B.?每個自定義類都默認擁有原型屬性</p><p>C.?原型擁有類的成員集合</p><p>D.?原型里的this表示原型自身</p><p>3.?以下關于JavaScript繼承說法錯誤的是()。</p><p>A.?JavaScript沒有繼承機制</p><p>B.?JavaScript可以借助原型實現繼承</p><p>C.?JavaScript子類無法重寫父類方法</p><p>D.?JavaScript子類中可以調用父類的構造函數</p><p>4.?下列關于XML說法錯誤的是()。</p><p>A.?XML和HTML的作用一樣,只不過標記需要自定義而已</p><p>B.?XML主要用來存儲、傳輸數據,能夠跨平臺</p><p>C.?不同瀏覽器加載XML文件的方式不同</p><p>二、上機練習</p><p>web前端 XML 面向對象編程</p><p> <strong>版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。</strong> </p><p> <strong>版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。</strong> </p></div> <div id="smwqmq2" class="article_footer clear"> <div id="eyus0oe" class="fr tag">標簽:<a href="http://m.bai1xia.com/news/tags-331.html">入門</a> <a href="http://m.bai1xia.com/news/tags-1291.html">十一</a> </div> <div id="iayisum" class="bdsharebuttonbox fl share"> <div id="00oyime" class="share-widget fl"> <div id="020mkas" class="social-share" data-sites="wechat,weibo, qq, qzone"></div> </div> </div> </div> <!-- 廣告位ad4 --> <div id="icayuag" class="post-navigation clear"> <div id="yq2ygkq" class="post-previous fl"> <span>上一篇:</span><a href="http://m.bai1xia.com/news/post/95811.html">圖形-Shapes</a> </div> <div id="me0yika" class="post-next fr"> <span>下一篇:</span><a href="http://m.bai1xia.com/news/post/6983.html">ZETA+TinyML:“端智能”和“遠程算法升級”開啟LPWAN2.0泛在物聯新時代</a> </div> </div> </div> <div id="asseask" class="related_article"> <div id="kcocme0" class="box_title clear"> <span><i class="icon fa fa-paper-plane"></i>相關文章</span> </div> <div id="gawsqkm" class="related_list clear"> <article class="fl"> <div id="g0mkggk" class="related_img"><a href="http://m.bai1xia.com/news/post/1671.html"><img src="http://m.bai1xia.com/news/zb_users/cache/ly_autoimg/m/MTY3MQ.jpg"></a></div> <div id="iayusy0" class="related_detail"> <h3><a href="http://m.bai1xia.com/news/post/1671.html" title="股市學習<a target="_blank" href="http://m.bai1xia.com/news/tags-825.html"style="font-weight:bold;">穩扎穩打</a>(五)不同的行業里面,那些<a target="_blank" href="http://m.bai1xia.com/news/tags-21.html"style="font-weight:bold;">公司</a>能夠多年持續穩定的有盈利和增長">股市學習<a target="_blank" href="http://m.bai1xia.com/news/tags-825.html"style="font-weight:bold;">穩扎穩打</a>(五)不同的行業里面,那些<a target="_blank" href="http://m.bai1xia.com/news/tags-21.html"style="font-weight:bold;">公司</a>能夠多年持續穩定的有盈利和增長</a></h3> <div id="ciiqmq2" class="meta"> <span><i class="fa fa-eye"></i>622</span> <span><i class="fa fa-clock-o"></i>2025-03-31</span> </div> </div> </article> <article class="fl"> <div id="2kgqog8" class="related_img"><a href="http://m.bai1xia.com/news/post/19300.html"><img src="http://m.bai1xia.com/news/zb_users/upload/2022/05/20220530231442_77465."></a></div> <div id="iawuuo0" class="related_detail"> <h3><a href="http://m.bai1xia.com/news/post/19300.html" title="WEB<a target="_blank" href="http://m.bai1xia.com/news/tags-331.html"style="font-weight:bold;">入門</a>之<a target="_blank" href="http://m.bai1xia.com/news/tags-3648.html"style="font-weight:bold;">十六</a> 操作DOM節點">WEB<a target="_blank" href="http://m.bai1xia.com/news/tags-331.html"style="font-weight:bold;">入門</a>之<a target="_blank" href="http://m.bai1xia.com/news/tags-3648.html"style="font-weight:bold;">十六</a> 操作DOM節點</a></h3> <div id="cieqaua" class="meta"> <span><i class="fa fa-eye"></i>622</span> <span><i class="fa fa-clock-o"></i>2025-03-31</span> </div> </div> </article> <article class="fl"> <div id="c0y0yag" class="related_img"><a href="http://m.bai1xia.com/news/post/18641.html"><img src="http://m.bai1xia.com/news/zb_users/upload/2023/08/wenzhangerweima.jpg"></a></div> <div id="yeeaias" class="related_detail"> <h3><a href="http://m.bai1xia.com/news/post/18641.html" title="SpringBoot<a target="_blank" href="http://m.bai1xia.com/news/tags-225.html"style="font-weight:bold;">教程</a>(<a target="_blank" href="http://m.bai1xia.com/news/tags-1291.html"style="font-weight:bold;">十一</a>) | SpringBoot集成Mybatis">SpringBoot<a target="_blank" href="http://m.bai1xia.com/news/tags-225.html"style="font-weight:bold;">教程</a>(<a target="_blank" href="http://m.bai1xia.com/news/tags-1291.html"style="font-weight:bold;">十一</a>) | SpringBoot集成Mybatis</a></h3> <div id="koyuums" class="meta"> <span><i class="fa fa-eye"></i>622</span> <span><i class="fa fa-clock-o"></i>2025-03-31</span> </div> </div> </article> </div> </div> <!--<p class="comment-disable sb br mb"><i class="iconfont icon-cry"></i>抱歉,評論功能暫時關閉!</p>--> </div> </div> <div id="oue0gw0" class="sidebar"> <div class="i00yias" id="推薦文章" class="part clear 推薦文章"> <div id="e2mmics" class="top"> <h3 class="title">推薦文章</h3> </div> <div id="aiu2uwm" class="side 推薦文章"><ul><ul class="hot_posts"> <li><h4><a href="http://m.bai1xia.com/news/post/132763.html" title="企業生產管理是什么,企業生產管理軟件">企業生產管理是什么,企業生產管理軟件</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/136160.html" title="盤點進銷存軟件排行榜前十名">進盤點進銷存軟件排行榜前十名</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/132779.html" title="進銷存系統哪個簡單好用?進銷存系統優點">進銷存系統哪個簡單好用?進銷存系統優點</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/133648.html" title="工廠生產管理(工廠生產管理流程及制度)">工廠生產管理(工廠生產管理流程及制度)</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/132780.html" title="生產管理軟件,機械制造業生產管理,制造業生產過程管理軟件">生產管理軟件,機械制造業生產管理,制造業生產過程管理軟件</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/132776.html" title="進銷存軟件和ERP有什么區別?進銷存與erp軟件理解">進銷存軟件和ERP有什么區別?進銷存與erp軟件理解</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/132974.html" title="進銷存如何進行庫存管理">進銷存如何進行庫存管理</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/132269.html" title="excel銷售訂單管理系統(銷售訂單錄入系統)">如何利用excel制作銷售訂單管理系統?</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/136946.html" title="數據庫訂單管理系統有哪些功能?數據庫訂單管理系統怎么設計?">數據庫訂單管理系統有哪些功能?數據庫訂單管理系統怎么設計?</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/132312.html" title="數據庫訂單管理系統(訂單系統數據流圖)">什么是數據庫管理系統?</a></h4></li></ul></ul></div> </div> <div class="wsecaek" id="divPrevious" class="part clear previous"> <div id="aw2kgsk" class="top"> <h3 class="title">最近發表</h3> </div> <div id="cmkigwa" class="side divPrevious"><ul><li><a title="寵物集市-寵物集市華東、華南、華北排行榜一覽表" href="http://m.bai1xia.com/news/post/157796.html">寵物集市-寵物集市華東、華南、華北排行榜一覽表</a></li> <li><a title="京寵展-2025年時間表" href="http://m.bai1xia.com/news/post/157795.html">京寵展-2025年時間表</a></li> <li><a title="寵物集市在深圳哪里有?時間地址最新消息" href="http://m.bai1xia.com/news/post/157794.html">寵物集市在深圳哪里有?時間地址最新消息</a></li> <li><a title="亞洲寵物展2025年展會介紹" href="http://m.bai1xia.com/news/post/157793.html">亞洲寵物展2025年展會介紹</a></li> <li><a title="京寵展信息指南" href="http://m.bai1xia.com/news/post/157792.html">京寵展信息指南</a></li> <li><a title="寵物展會2025年時間表" href="http://m.bai1xia.com/news/post/157791.html">寵物展會2025年時間表</a></li> <li><a title="亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析" href="http://m.bai1xia.com/news/post/157790.html">亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析</a></li> <li><a title="2025年亞洲寵物展覽會、京寵展有哪些亮點" href="http://m.bai1xia.com/news/post/157789.html">2025年亞洲寵物展覽會、京寵展有哪些亮點</a></li> <li><a title="<a target="_blank" href="http://m.bai1xia.com/news/tags-10262.html"style="font-weight:bold;">wps</a>演示添加自定義按鈕<a target="_blank" href="http://m.bai1xia.com/news/tags-823.html"style="font-weight:bold;">設置</a>動作改變按順序播放" href="http://m.bai1xia.com/news/post/118206.html"><a target="_blank" href="http://m.bai1xia.com/news/tags-10262.html"style="font-weight:bold;">wps</a>演示添加自定義按鈕<a target="_blank" href="http://m.bai1xia.com/news/tags-823.html"style="font-weight:bold;">設置</a>動作改變按順序播放</a></li> <li><a title="如何將<a target="_blank" href="http://m.bai1xia.com/news/tags-13007.html"style="font-weight:bold;">WPS</a>行中的文本調整到行中" href="http://m.bai1xia.com/news/post/119027.html">如何將<a target="_blank" href="http://m.bai1xia.com/news/tags-13007.html"style="font-weight:bold;">WPS</a>行中的文本調整到行中</a></li> </ul></div> </div> <div class="ueyuimc" id="sidebar_ad" class="part clear sidebar_ad"> <div id="gs0muyo" class="part sidebar_ad"></div> </div> <div class="wmcywos" id="hot_posts" class="part clear hot_posts"> <div id="ieokmey" class="top"> <h3 class="title">熱評文章</h3> </div> <ul class="hot_posts"><li><h4><a href="http://m.bai1xia.com/news/post/104011.html" title="<a target="_blank" href="http://m.bai1xia.com/news/tags-10179.html"style="font-weight:bold;">零代碼</a>開發是什么?2022<a target="_blank" href="http://m.bai1xia.com/news/tags-1.html"style="font-weight:bold;">低代碼</a>平臺排行榜">零代碼開發是什么?2022低代碼平臺排行榜</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/131019.html" title="智能<a target="_blank" href="http://m.bai1xia.com/news/tags-14329.html"style="font-weight:bold;">進銷存庫存管理</a><a target="_blank" href="http://m.bai1xia.com/news/tags-56.html"style="font-weight:bold;">系統</a>(智慧進銷存)">智能進銷存庫存管理系統(智慧進銷存)</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/73907.html" title="<a target="_blank" href="http://m.bai1xia.com/news/tags-14095.html"style="font-weight:bold;">在線文檔</a>哪家強?8款在線文檔編輯軟件推薦">在線文檔哪家強?8款在線文檔編輯軟件推薦</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/102663.html" title="WPS2016怎么繪制簡單的價格表?">WPS2016怎么繪制簡單的價格表?</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/143685.html" title="定制家居數字化管理模式:提升品質、智能化和個性化的未來">定制家居數字化管理模式:提升品質、智能化和個性化的未</a></h4></li><li><h4><a href="http://m.bai1xia.com/news/post/144333.html" title="智能定制家居管理系統:重新定義家庭生活方式">智能定制家居管理系統:重新定義家庭生活方式</a></h4></li></ul> </div> <div class="ygqc2go" id="divLinkage" class="part clear link"> <div id="cseawou" class="top"> <h3 class="title">友情鏈接</h3> </div> <div id="0com0yq" class="side divLinkage"><ul><li id="me00oek" class="link-item"><a href="http://m.bai1xia.com/" target="_blank" title="伙伴云">伙伴云</a></li><li id="agcqau0" class="link-item"><a href="http://m.bai1xia.com/news/category-19.html" title="進銷存管理">進銷存管理</a></li><li id="yu0owmg" class="link-item"><a href="http://m.bai1xia.com/news/category-3.html" title="低代碼">低代碼</a></li><li id="eku0uwk" class="link-item"><a href="http://m.bai1xia.com/news/tags-12.html" target="_blank" title="Excel表格">Excel表格</a></li><li id="umisekc" class="link-item"><a title="誠鼎網">誠鼎網</a></li><li id="0u00ca0" class="link-item"><a title="FinClip">FinClip</a></li><li id="imwwswc" class="link-item"><a title="海特貝利常識網">海特貝利常識網</a></li></ul></div> </div> </div> </div> </section> </div> <footer class="p-footer"> <div id="s2mks0q" class="contant_box"> <div id="m0aus0i" class="discover_tmt"> <h5 class="" style="font-size: 1px; color: white;">伙伴云</h5> <div id="wamyk2a" class="text_box"> <a title="toB數字化營銷SEO" style="font-size: 1px; color: white;">加搜toBSEO</a> <a title="小程序工具" style="font-size: 1px; color: white;">前端框架</a> <a title="小紅書營銷攻略" style="font-size: 1px; color: white;">小紅書營銷攻略</a> <a title="衍因科技" style="font-size: 1px; color: white;">衍因科技</a> <a title="FinClip 技術文檔" style="font-size: 1px; color: white;">小程序容器幫助中心</a> <a title="小程序開發行業洞察" style="font-size: 1px; color: white;">小程序開發行業洞察</a> <a title="全面預算管理資訊" style="font-size: 1px; color: white;">全面預算管理資訊</a> <a title="企微SCRM客戶管理干貨" style="font-size: 1px; color: white;">企微SCRM客戶管理干貨</a> <a title="3D視覺相機資訊" style="font-size: 1px; color: white;">3D視覺相機資訊</a> <a title="創冷科技無電制冷" style="font-size: 1px; color: #22292D;">創冷科技無電制冷</a> <a title="協作機器人資訊" style="font-size: 1px; color: #22292D;">協作機器人資訊</a> </div> </div> <div id="oeoyucg" class="collaboration_box"> </div> <div id="a0scksi" class="we_img_box clear"> <div id="kee2skm" class="img_box"> <img src="http://m.bai1xia.com/news/zb_users/theme/zblog5_news/image/ewm.png" alt="" class="hover_tmt"> </div> </div> </div> <p class="info"> <a target="_blank" rel="nofollow">京ICP備12038259號</a> <span> <a href="#"></a></span> </p> </footer> <div class="qwuscua" id="backtop" class="backtop"> <div id="ekucagk" class="bt-box top"> <i class="fa fa-angle-up fa-2x"></i> </div> </div> <script charset="UTF-8" src="http://m.bai1xia.com/assets/js/sensorsdata.1.22.2.min.js"></script> <script charset="UTF-8"> var sensors = window['sensorsDataAnalytic201505']; sensors.init({ server_url: 'https://saapi.huoban.com/sa?project=production', heatmap:{scroll_notice_map:'not_collect'}, use_client_time:true, send_type:'beacon' }); sensors.quick('autoTrack'); </script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6444c045836d6bf27124085a4f62c2a8"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script> (()=>{const e="https://analyze.jiasou.cc/api/v1/page_view/report/",n="9fe06d4884e0461caaa1de5651164d43";let t=null;const o=new Proxy({},{get:(e,n)=>localStorage.getItem(window.btoa(n)),set:(e,n,t)=>!!t&&(localStorage.setItem(window.btoa(n),t),!0)});new Promise((t=>{if(o.fingerprint)t();else{const a=function(){var e={};if(e.userAgent=navigator.userAgent||"",e.plugins=[],navigator.plugins&&navigator.plugins.length>0)for(var n=0;n<navigator.plugins.length;n++){var t={name:navigator.plugins[n].name||"",filename:navigator.plugins[n].filename||"",description:navigator.plugins[n].description||""};e.plugins.push(t)}e.languages=navigator.languages||[navigator.language||""],e.timezone=(new Date).getTimezoneOffset(),e.screenResolution={width:window.screen.width||0,height:window.screen.height||0,pixelDepth:window.screen.pixelDepth||0,colorDepth:window.screen.colorDepth||0};var o=document.createElement("canvas").getContext("2d"),a=[],i=["monospace","sans-serif","serif"];for(n=0;n<i.length;n++){var r=i[n];o.font="12px "+r,o.measureText("abcdefghijklmnopqrstuvwxyz0123456789").width>0&&a.push(r)}return e.fonts=a,e.cookieEnabled=navigator.cookieEnabled||!1,e.localStorage=void 0!==window.localStorage,e.sessionStorage=void 0!==window.sessionStorage,e.doNotTrack="1"===navigator.doNotTrack||"1"===window.doNotTrack||"1"===navigator.msDoNotTrack||"yes"===navigator.doNotTrack,e}();fetch(`${e}u/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:n,f:window.btoa(JSON.stringify(a))})}).then((e=>{console.debug("browser fingerprint sent"),200===e.status&&e.json().then((e=>{console.debug("browser fingerprint received",e),o.fingerprint=e.fp,t()}))}))}})).then((()=>{e&&o.fingerprint&&fetch(e+`?${new URLSearchParams({token:n}).toString()}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({c:window.btoa(JSON.stringify({u:o.fingerprint,l:window.location.href,r:document.referrer}))})}).then((e=>{200==e.status&&e.json().then((e=>{e.track_id&&(t=e.track_id)}))}))})),window.addEventListener("beforeunload",(async n=>{t&&fetch(e+`?${new URLSearchParams({track_id:t}).toString()}`,{method:"GET",headers:{"Content-Type":"text/plain"},keepalive:!0}),n.returnValue=""}))})(); </script><script language="javascript" src="http://m.bai1xia.com/news/zb_users/plugin/ZF_ad/js/index.js?id=782"></script> <script language="javascript" src="http://m.bai1xia.com/news/zb_users/plugin/ZF_ad/js/ZF_ad__cookie.js"></script> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.bai1xia.com/" title="日本亚洲中午字幕乱码">日本亚洲中午字幕乱码</a> <div class="friend-links"> </div> </div> </footer> <a href="http://" target="_blank">亚洲天天做日日做天天看</a>| <a href="http://" target="_blank">亚洲色图黄色小说</a>| <a href="http://" target="_blank">亚洲国产日韩在线人成下载</a>| <a href="http://" target="_blank">婷婷精品国产亚洲AV麻豆不片 </a>| <a href="http://" target="_blank">亚洲日韩区在线电影</a>| <a href="http://" target="_blank">国产偷国产偷亚洲清高动态图 </a>| <a href="http://" target="_blank">亚洲性在线看高清h片</a>| <a href="http://" target="_blank">国产av无码专区亚洲av毛片搜</a>| <a href="http://" target="_blank">精品无码专区亚洲</a>| <a href="http://" target="_blank">亚洲AV无码之日韩精品</a>| <a href="http://" target="_blank">亚洲精品天堂成人片?V在线播放</a>| <a href="http://" target="_blank">亚洲国产精品一区二区九九 </a>| <a href="http://" target="_blank">亚洲一区二区三区写真</a>| <a href="http://" target="_blank">亚洲中文字幕精品久久</a>| <a href="http://" target="_blank">亚洲精品久久无码av片俺去也</a>| <a href="http://" target="_blank">亚洲码欧美码一区二区三区</a>| <a href="http://" target="_blank">亚洲成在人线aⅴ免费毛片</a>| <a href="http://" target="_blank">亚洲GV天堂GV无码男同</a>| <a href="http://" target="_blank">亚洲成A人片在线观看无码3D</a>| <a href="http://" target="_blank">亚洲国产电影av在线网址</a>| <a href="http://" target="_blank">国产亚洲精aa成人网站</a>| <a href="http://" target="_blank">亚洲大尺度无码专区尤物</a>| <a href="http://" target="_blank">亚洲精品乱码久久久久久中文字幕</a>| <a href="http://" target="_blank">亚洲韩国精品无码一区二区三区 </a>| <a href="http://" target="_blank">国产精品亚洲专区无码不卡</a>| <a href="http://" target="_blank">亚洲精品成人片在线观看</a>| <a href="http://" target="_blank">国产亚洲一区二区三区在线不卡</a>| <a href="http://" target="_blank">亚洲精品色午夜无码专区日韩</a>| <a href="http://" target="_blank">久久久久久亚洲av成人无码国产</a>| <a href="http://" target="_blank">亚洲黑人嫩小videos</a>| <a href="http://" target="_blank">亚洲一线产区二线产区精华</a>| <a href="http://" target="_blank">国产精品高清视亚洲一区二区</a>| <a href="http://" target="_blank">亚洲av成人片在线观看</a>| <a href="http://" target="_blank">亚洲一区二区三区在线播放</a>| <a href="http://" target="_blank">国产亚洲综合成人91精品</a>| <a href="http://" target="_blank">中文字幕亚洲综合久久</a>| <a href="http://" target="_blank">亚洲精品123区在线观看</a>| <a href="http://" target="_blank">在线观看亚洲视频</a>| <a href="http://" target="_blank">亚洲情XO亚洲色XO无码</a>| <a href="http://" target="_blank">中文字幕亚洲第一在线</a>| <a href="http://" target="_blank">亚洲色大情网站www</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body><div id="uyosa" class="pl_css_ganrao" style="display: none;"><tr id="uyosa"></tr><strike id="uyosa"><input id="uyosa"><tbody id="uyosa"></tbody></input></strike><strong id="uyosa"><em id="uyosa"><del id="uyosa"></del></em></strong><bdo id="uyosa"></bdo><wbr id="uyosa"><cite id="uyosa"><table id="uyosa"></table></cite></wbr><center id="uyosa"><dl id="uyosa"><nav id="uyosa"></nav></dl></center><cite id="uyosa"></cite><table id="uyosa"><tr id="uyosa"><pre id="uyosa"></pre></tr></table><code id="uyosa"></code><noscript id="uyosa"></noscript><del id="uyosa"></del><menu id="uyosa"></menu><nav id="uyosa"><li id="uyosa"><option id="uyosa"></option></li></nav><acronym id="uyosa"></acronym><sup id="uyosa"></sup><abbr id="uyosa"><center id="uyosa"><dd id="uyosa"></dd></center></abbr><tr id="uyosa"><pre id="uyosa"><wbr id="uyosa"></wbr></pre></tr><abbr id="uyosa"></abbr><samp id="uyosa"><th id="uyosa"><object id="uyosa"></object></th></samp><dfn id="uyosa"><center id="uyosa"><strong id="uyosa"></strong></center></dfn><em id="uyosa"><del id="uyosa"><sup id="uyosa"></sup></del></em><samp id="uyosa"><tbody id="uyosa"><s id="uyosa"></s></tbody></samp><s id="uyosa"><bdo id="uyosa"><abbr id="uyosa"></abbr></bdo></s><noframes id="uyosa"></noframes><noframes id="uyosa"></noframes><bdo id="uyosa"></bdo><dfn id="uyosa"><center id="uyosa"><strong id="uyosa"></strong></center></dfn><menu id="uyosa"></menu><acronym id="uyosa"></acronym><dl id="uyosa"><object id="uyosa"><li id="uyosa"></li></object></dl><pre id="uyosa"></pre><acronym id="uyosa"></acronym><abbr id="uyosa"><sup id="uyosa"><center id="uyosa"></center></sup></abbr><strong id="uyosa"></strong><s id="uyosa"><bdo id="uyosa"><abbr id="uyosa"></abbr></bdo></s><dl id="uyosa"></dl><xmp id="uyosa"><tfoot id="uyosa"><input id="uyosa"></input></tfoot></xmp><xmp id="uyosa"></xmp><kbd id="uyosa"></kbd><dfn id="uyosa"></dfn><cite id="uyosa"></cite><sup id="uyosa"><center id="uyosa"><strong id="uyosa"></strong></center></sup><samp id="uyosa"><th id="uyosa"><object id="uyosa"></object></th></samp><tbody id="uyosa"></tbody><cite id="uyosa"></cite><del id="uyosa"><dfn id="uyosa"><source id="uyosa"></source></dfn></del><input id="uyosa"></input><code id="uyosa"><noframes id="uyosa"><abbr id="uyosa"></abbr></noframes></code><strong id="uyosa"></strong><strike id="uyosa"></strike><li id="uyosa"></li><td id="uyosa"></td><source id="uyosa"></source><td id="uyosa"><cite id="uyosa"><abbr id="uyosa"></abbr></cite></td><th id="uyosa"><object id="uyosa"><bdo id="uyosa"></bdo></object></th><tbody id="uyosa"><em id="uyosa"><del id="uyosa"></del></em></tbody><s id="uyosa"><bdo id="uyosa"><abbr id="uyosa"></abbr></bdo></s><blockquote id="uyosa"><tfoot id="uyosa"><input id="uyosa"></input></tfoot></blockquote><del id="uyosa"></del><menu id="uyosa"><noscript id="uyosa"><pre id="uyosa"></pre></noscript></menu><table id="uyosa"><delect id="uyosa"><pre id="uyosa"></pre></delect></table><abbr id="uyosa"></abbr><em id="uyosa"><blockquote id="uyosa"><tfoot id="uyosa"></tfoot></blockquote></em><samp id="uyosa"></samp><pre id="uyosa"><wbr id="uyosa"><cite id="uyosa"></cite></wbr></pre><abbr id="uyosa"></abbr><code id="uyosa"><em id="uyosa"><del id="uyosa"></del></em></code><dl id="uyosa"><nav id="uyosa"><small id="uyosa"></small></nav></dl><ul id="uyosa"><sup id="uyosa"><center id="uyosa"></center></sup></ul><option id="uyosa"><samp id="uyosa"><tbody id="uyosa"></tbody></samp></option><del id="uyosa"></del><tfoot id="uyosa"></tfoot><th id="uyosa"></th><menu id="uyosa"></menu><center id="uyosa"></center><noframes id="uyosa"></noframes><center id="uyosa"></center><th id="uyosa"></th><th id="uyosa"></th><center id="uyosa"></center><strike id="uyosa"><menu id="uyosa"><tr id="uyosa"></tr></menu></strike><blockquote id="uyosa"><tfoot id="uyosa"><source id="uyosa"></source></tfoot></blockquote><code id="uyosa"><noframes id="uyosa"><ul id="uyosa"></ul></noframes></code><dd id="uyosa"><th id="uyosa"><s id="uyosa"></s></th></dd><em id="uyosa"></em><tbody id="uyosa"></tbody><bdo id="uyosa"></bdo><strike id="uyosa"></strike><menu id="uyosa"></menu><th id="uyosa"></th><li id="uyosa"></li><fieldset id="uyosa"><menu id="uyosa"><noscript id="uyosa"></noscript></menu></fieldset><td id="uyosa"></td><input id="uyosa"></input><blockquote id="uyosa"><tfoot id="uyosa"><input id="uyosa"></input></tfoot></blockquote><tr id="uyosa"></tr><xmp id="uyosa"></xmp><abbr id="uyosa"></abbr><table id="uyosa"><delect id="uyosa"><tr id="uyosa"></tr></delect></table><tfoot id="uyosa"></tfoot><dfn id="uyosa"></dfn><kbd id="uyosa"></kbd><menu id="uyosa"><tr id="uyosa"><pre id="uyosa"></pre></tr></menu><td id="uyosa"><fieldset id="uyosa"><menu id="uyosa"></menu></fieldset></td><optgroup id="uyosa"></optgroup><source id="uyosa"></source><tfoot id="uyosa"></tfoot><acronym id="uyosa"></acronym><acronym id="uyosa"></acronym><del id="uyosa"></del><rt id="uyosa"><code id="uyosa"><em id="uyosa"></em></code></rt><option id="uyosa"></option><acronym id="uyosa"></acronym><strike id="uyosa"><menu id="uyosa"><noscript id="uyosa"></noscript></menu></strike><tfoot id="uyosa"></tfoot><tr id="uyosa"><wbr id="uyosa"><bdo id="uyosa"></bdo></wbr></tr><optgroup id="uyosa"><li id="uyosa"><center id="uyosa"></center></li></optgroup><acronym id="uyosa"></acronym><samp id="uyosa"></samp><option id="uyosa"></option><cite id="uyosa"></cite><nav id="uyosa"></nav><th id="uyosa"></th><strong id="uyosa"></strong><abbr id="uyosa"></abbr><code id="uyosa"><optgroup id="uyosa"><ul id="uyosa"></ul></optgroup></code><em id="uyosa"><del id="uyosa"><sup id="uyosa"></sup></del></em><blockquote id="uyosa"></blockquote><dfn id="uyosa"><rt id="uyosa"><code id="uyosa"></code></rt></dfn><source id="uyosa"><code id="uyosa"><em id="uyosa"></em></code></source><dd id="uyosa"><th id="uyosa"><s id="uyosa"></s></th></dd><noframes id="uyosa"></noframes><blockquote id="uyosa"></blockquote><samp id="uyosa"></samp><tr id="uyosa"></tr><tbody id="uyosa"><pre id="uyosa"><xmp id="uyosa"></xmp></pre></tbody><del id="uyosa"></del><menu id="uyosa"></menu><bdo id="uyosa"><abbr id="uyosa"><delect id="uyosa"></delect></abbr></bdo><noscript id="uyosa"></noscript><option id="uyosa"></option><em id="uyosa"></em><th id="uyosa"></th><ul id="uyosa"><center id="uyosa"><center id="uyosa"></center></center></ul><ul id="uyosa"><sup id="uyosa"><center id="uyosa"></center></sup></ul><center id="uyosa"></center><source id="uyosa"></source><del id="uyosa"></del><noframes id="uyosa"></noframes><dl id="uyosa"></dl></div> </html> <!--51.64 ms , 17 queries , 3719kb memory , 0 error-->