整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          站長在線HTML5精講:HTML的相關概念詳解

          迎你來到站長在線的站長學堂,學習html5的知識,今天分享的是《HTML的相關概念詳解》。主要內容有:WWW,W3C,WHATWG,URL,HTTP,XHTML,網站,域名,網站空間,網站程序。

          WWW:(World Wide Web,萬維網)是一種建立在Internet上的、全球性的、交互的、多平臺的、分布式的信息資源網絡。它采用HTML語言描述超文本(Hypertext)文件。這里所說的超文本指的是包含有鏈接關系的文件,并且包含了多媒體對象的文件。

          W3C:( World Wide Web Consortium )萬維網聯盟,創建于1994年是Web技術領域最具權威和影響力的國際中立性技術標準機構。W3C 制定了結構(xhtml、xml)和表現(CSS)的標準,非贏利性的。

          WHATWG:網頁超文本應用技術工作小組,一個以推動網絡HTML 5 標準為目的而成立的組織。在2004年,由Opera、Mozilla基金會和蘋果這些瀏覽器廠商組成。

          WWW有3個基本組成部分,分別是URL(統一資源定位器)、HTTP(超文本傳輸協議)和HTML(超文本標識語言)。

          URL:(Universal Resource Locators)提供在Web上進入資源的統一方法和路徑,使得用戶所要訪問的站點具有唯一性,這就相當于我們每個人只有一個身份證號一樣。它說明了鏈接所指向的每個文件的類型及其準確位置。

          HTTP:(Hypertext Transfer Protocol)超文本傳輸協議是一種網絡上傳輸數據的協議,專門用于傳輸以“超文本”(Hypertext)或“超媒體”(Hypermedia)的形式提供的信息。

          HTML語言:(Hypertext Markup Language,中文通常稱為超文本置標語言或超文本標記語言)是一種文本類、解釋執行的標記語言,它是Internet上用于編寫網頁的主要語言。用HTML編寫的超文本文件稱為HTML文件。

          XHTML:指可擴展超文本標記語言(標識語言)(EXtensible HyperText Markup Language)是一種置標語言,表現方式與超文本標記語言(HTML)類似,不過語法上更加嚴格。

          要把信息發布到全球,就必須要使用能夠被大眾接受的語言,也就是使用一種大多數計算機能夠識別的出版語言。在WWW上,通常使用的發布語言是HTML,即超文本標識語言。


          HTML5:指的是HTML的第五次重大修改(第5個版本)(HTML5 是 W3C 與 WHATWG 合作的結果)。

          HTML是純文本類型的語言,使用HTML編寫的網頁文件也是標準的純文本文件。

          我們可以用任何文本編輯器,例如Windows的“記事本”程序打開它,查看其中的HTML源代碼,也可以在用瀏覽器打開網頁時,通過相應的“查看/源文件”命令查看網頁中的HTML代碼。HTML文件可以直接由瀏覽器解釋執行,而無須編譯。當用瀏覽器打開網頁時,瀏覽器讀取網頁中的HTML代碼,分析其語法結構,然后根據解釋的結果顯示網頁內容,正是因為如此,網頁顯示的速度同網頁代碼的質量有很大的關系,保持精簡和高效的HTML源代碼是十分重要的。

          網站:一個完整的網站,主要由域名,網站空間和網站程序組成。如果我們把網站比喻成一棟房子的話,域名相對于門牌號,代表了地址。網站空間相對于房子的地皮,房子的空間與網站空間的大小相對應。網站程序相對于建筑材料和建筑方法了。建房子是需要建筑工人來完成,做網站就是程序員的事情了。

          域名:簡單的說就是網站的網址最重要的部分。如本站的域名是olzz.com。輸入哪一個域名就到達哪一個網站。這相對于房子的門牌號,有了實際的地址,你才知道要去哪里。域名在互聯網上是唯一的,你注冊了這個域名,別人就不能注冊了,所以那些簡短、有意義的域名,價格就很昂貴。實際中的地址也是一樣,相同大小的房子,北京一環內的是要比大西北沙漠里面的房子要貴。

          網站空間:網站空間主要用于存放網頁內容的,比如網站的源碼,圖片,視頻,文檔等內容。目前主要有兩種,一個是云服務器,一個是虛擬主機。一臺云服務器相對于一臺獨立的電腦,通常可以做無數個網站。一個虛擬主機,就是服務器里面的一個文件夾,通常來說,一個虛擬主機只能做一個網站。不管是服務器還是虛擬主機,空間越大就越貴(當然其他的配置也會更高)。拿房子來說,一個占地幾個平方的茅草屋和幾萬平方的高樓大廈的成本是不一樣的。

          網站程序:網站程序也叫網站源碼,你要建什么功能的網站,就要開發什么樣的程序。比如購物網站,視頻網站,游戲網站,博客網站等網站程序不一樣,對應的功能也是不一樣的。就好比建房子,你建一個 茅草屋和建一個高樓大廈,所用的材料和建筑方法是不一樣的。現在有很多開源的建站程序,比如搭建博客用WordPress、zblog,搭建論壇用discuz。當然現成的網站程序的功能不能滿足自己的需求,這就需要對網站的功能進行單獨定制。

          tml

          1. 什么是html?

          Html是用來描述網頁的一種語言

          HTML 使用標記標簽來描述網頁

          HTML 指的是超文本標記語言 (Hyper Text Markup Language)

          HTML 不是一種編程語言,而是一種標記語言 (markup language)

          標記語言是一套標記標簽 (markup tag)

          2. Html的作用?

          Web瀏覽器的作用是讀取html文檔,并以網頁的形式顯示它們。瀏覽器不會顯示html標簽,而是使用標簽來解釋頁面上的內容。簡單說,html就是用于展示信息的。

          3. Html書寫規范

          a) Html標簽

          HTML 標記標簽通常被稱為 HTML 標簽 (HTML tag)。

          HTML 標簽是由尖括號包圍的關鍵詞,比如 <html>

          HTML 標簽通常是成對出現的,比如 <b> 和 </b>

          標簽對中的第一個標簽是開始標簽,第二個標簽是結束標簽。

          絕大多數的標簽都具有屬性,建議屬性值使用引號引起。例如:<body text=”red”>

          大多數標簽是可以嵌套的,支持正確合理的標簽嵌套。

          b) Html創建

          Html文件可以直接使用文本編輯器來創建,保存時,后綴名為html或htm

          整個文件是在<html>與</html>標簽之間在<html>標簽間有<head>與<body>子標簽。

          c) 空的html標簽

          沒有內容的 HTML 元素被稱為空元素。空元素是在開始標簽中關閉的。

          <br> 就是沒有關閉標簽的空元素(<br> 標簽定義換行)。

          在開始標簽中添加斜杠,比如 <br/>,是關閉空元素的正確方法,HTML、XHTML 和 XML 都接受這種方式。

          即使 <br> 在所有瀏覽器中都是有效的,但使用 <br /> 其實是更長遠的保障。

          d) Html大小寫不敏感

          HTML 標簽對大小寫不敏感:<P> 等同于 <p>。許多網站都使用大寫的 HTML 標簽。在未來 (X)HTML 版本中強制使用小寫。

          要包括下面這些:

          數據類型、判斷方法、執行上下文、變量對象、活動對象原型、原型鏈作用域、作用域鏈閉包、垃圾回收機制、this指向、類和模塊、繼承、函數式編程、同步異步、JS正則表達式、事件模型、Ajax、跨域訪問、DOM、BOM。

          數據類型、判斷方法

          ECMAScript的基本數據類型有5種:Undefined、Null、Boolean、Number、String。

          其中Boolean、Number、String屬于原始類型,Undefined、Null屬于原始值。

          原始類型代表了各自類型的所有成員,原始值則代表了各自特殊類型的唯一成員。

          ECMAScript的復合數據類型有1種:Object(對象類型)。

          Object是一種復合值,它將很多值(原始類型/值或者其他對象)聚合在一起,通過屬性的形式進行訪問。

          ECMAScript的特殊對象類型:Array、Function、Math、Date、JSON、RegExp、Error,每種類型都各自代表一種獨立的類,不同的類實例擁有不同的類特性以及對應的操作方式。

          ECMAScript常見數據類型劃分方式:

          1.原始類型、對象類型

          2.值類型、引用類型

          3.可變類型、不可變類型

          4.可擁有方法類型、不可擁有方法類型精確區分數據類型的判斷方法:Object.prototype.toString.call

          執行上下文

          JS的執行上下文可以理解為當前代碼的執行環境,在執行JS程序時,每遇到一段JS可執行代碼,都會創建一個可執行上下文。JS當中可執行代碼分為三種:全局代碼、函數代碼、eval代碼。所以一段JS程序必定會產生多個執行上下文,而JavaScript引擎則是以堆棧的形式來對其進行管理,也就是常說的函數調用棧。棧底是全局上下文,棧頂則是當前正在執行的上下文。例如:

          執行上下文在函數調用棧中的順序為(自底向上):globalStack => threeStack => twoStack => oneStack

          特性

          1.單線程

          2.同步執行,只有棧頂的上下文處于執行中,其他上下文需要等待

          3.全局上下文只有唯一的一個,它在瀏覽器關閉時出棧

          4.函數的執行上下文的個數沒有限制

          5.每次某個函數被調用,就會有個新的執行上下文為其創建,即使是調用的自身函數,也是如此。變量對象、活動對象

          在介紹變量對象與活動對象前,首先我們需要更深入的理解執行上下文的生命周期,執行上下文的生命周期分為兩個階段:

          第一個階段是創建階段,每當JS引擎在執行一段可執行代碼時,都會先進入創建階段。該階段會分別創建變量對象,建立作用域鏈,以及確定this的指向,作用域鏈和this指向會在后文闡述。所謂變量對象就是用于存儲在執行上下文中定義的變量和函數聲明,在當前上下文中每找到一個變量聲明,就會在變量對象中建立一個同名的屬性,每找到一個函數聲明,就會建立一個以函數名命名的屬性,屬性值則為指向該函數所在內存地址的引用。這些預先建立好的屬性以及屬性值,存儲著該上下文中所有的變量數據,為后續代碼的執行奠定基礎。

          第二個階段是執行階段,當變量對象,作用域鏈,this指向都建立之后,執行上下文會進入到執行階段。在該階段中變量對象會轉化為活動對象,此時活動對象中的屬性都允許被訪問,并且可以執行其他數據性的操作。

          兩者區別:

          執行上下文處于創建階段時,變量對象中的屬性是不允許被訪問的,但是在進入到執行階段后,變量對象轉化為活動對象,并且里面的屬性都允許被外界訪問。其實兩者都屬于同一個對象,只是處于執行上下文的不同生命周期而已。

          原型、原型鏈

          在JavaScript中,每一個對象都會和另一個對象產生關聯,從另一個對象上繼承屬性,這里所指的另一個對象就是我們耳熟能詳的原型。原型本身也是一個對象,其他對象可以通過它實現屬性的繼承,也可以將任何一個對象作為自身對象的原型。JS中的任何對象都有原型,除了原型鏈頂端的對象:Object.prototype

          所謂原型鏈,就是由對象原型所構成的訪問鏈,我稱之為“原型繼承鏈”。一個JS對象的原型指向其父類對象,而父類對象的原型又指向父類對象的父類對象,這種通過原型層層連接起來的關系就是原型鏈。

          以下是幾種獲取原型對象的方法:

          作用域、作用域鏈

          說到作用域,就必須結合變量的訪問權限來說明。一個變量的作用域就是在程序中定義變量的區域,它規定了執行程序如何對變量進行查找,也就是確定當前的執行代碼對變量的訪問權限。在ES5中有全局作用域、函數作用域、eval作用域,在ES6中新增了塊級作用域。

          作用域鏈,則需要結合函數的嵌套來說明。當定義一個函數時,它實際上創建了一個作用域節點,該節點上存儲著當前作用域中的局部變量,并且該節點會掛載在作用域鏈的底端。在該函數中嵌套定義另一個函數時,同樣會創建另一個函數作用域的節點,該節點同樣也存儲著當前函數作用域中的局部變量,在作用域鏈中會將該節點掛載在外層函數的節點之下。所以在進行變量訪問時,會從自身節點開始查找,如果未找到變量的對應值,則會繼續查找上一個節點。而由這一系列節點所串聯起來的鏈就是我們所說的作用域鏈。

          JavaScript中的函數采用靜態作用域,也稱詞法作用域。當在執行函數調用時,不管何時何地執行函數,其中的變量在函數定義時就已經決定了,函數會從自身作用域節點開始,沿著作用域鏈向上訪問變量的值。

          注意:作用域鏈的頂端是全局作用域,作用域鏈在函數定義時就已經創建了。

          閉包、垃圾回收機制

          閉包,又一個老生常談的話題,可以用一句話對之概括:有權訪問另一個函數作用域內變量的函數都是閉包。例如:

          這里返回的inner函數就是能夠訪問outer函數中變量的閉包,除inner函數之外的外部作用域都無法訪問outer函數中的變量a。

          閉包特性:

          1.函數返回嵌套的函數形成閉包

          2.閉包內部可以訪問外部的參數和變量

          3.外部參數和變量在被閉包引用時不會被垃圾回收機制回收

          閉包優點:

          1.可避免變量對全局的污染

          2.允許函數私有成員的存在

          3.允許變量長駐內存

          閉包缺點:

          由于變量常駐內存,增大內存使用量,使用不當很容易造成內存泄漏。

          閉包應用場景:

          1.采用函數引用方式的setTimeout調用

          2.將函數關聯到對象的實例方法

          3.封裝相關的功能集

          JS垃圾回收機制原理

          JavaScript中的垃圾回收,主要是一種針對程序執行環境中內存的管理機制,該機制最大限度的優化了JS程序對操作系統內存的使用。垃圾回收機制也同樣非常容易理解:就是利用垃圾收集器,周期性的回收那些程序中,不被其他引用所指向的變量的內存資源。不被其他引用所指向的變量就是程序中不會再用到的變量,也就是生命周期結束的變量,這種變量多為局部變量,而全局變量只有在關閉瀏覽器或終止當前運行環境的情況下其生命周期才會結束。所以此時垃圾收集器所要做的就是周期性的檢索程序中處于結束狀態的變量,同時回收他們所占用的內存資源。

          而閉包的使用則無疑會增加程序對內存資源的占用,因為在閉包中存儲著對外部變量的引用,所以只要閉包中存儲的外部引用未停止使用,那么外部變量就永遠存在,且其所占用的內存資源無法被垃圾回收機制所釋放。因此合理的使用閉包,能優化程序的執行效率及降低程序的資源占有率。

          this指向

          this的指向問題無疑是JavaScript語言中必須掌握的核心概念。上文提到,在執行上下文創建的階段,就會建立this指向。而更細致的說,this的指向,是在函數被調用的時候確定的。

          下面是this指向的四種場景:

          1.如果一個函數中有this,但是它沒有以對象方法的形式調用,而是以函數名的形式執行,那么this指向的就是全局對象。

          2.如果一個函數中有this,并且這個函數是以對象方法的形式調用,那么this指向的就是調用該方法的對象。

          3.如果一個函數中有this,并且包含該函數的對象也同時被另一個對象所包含,盡管這個函數是被最外層的對象所調用,this指向的也只是它上一級的對象。

          4.如果一個構造函數或類方法中有this,那么它指向由該構造函數或類創建出來的實例對象。

          類和模塊

          類的概念

          JavaScript是一種弱類型語言,其本身并不像Java等語言那樣對數據具有很強的類型區分,所以為了能夠具有面向對象的編碼風格,以其獨有的方式實現了類的機制。在JavaScript中,類的實現是基于原型(prototype)繼承機制的,如果兩個實例都從同一個原型對象上繼承了屬性,可以說它們是屬于同一個類的實例。類讓每一個成員對象都共享某些屬性,這種屬性共享的方式在編程中占有舉足輕重的地位。

          ES5中的類:在ES5中,類是由函數來定義的,定義類的函數稱之為構造函數。一般這類函數會以首字母大寫的形式出現,普通的函數和方法都是以小寫字母開頭,對象實例化時通過new關鍵字來調用構造函數。構造函數上掛載著一個prototype屬性,該屬性存放的是當前類的原型對象,原型對象是類的核心,用于為每一個實例對象提供公有屬性。原型對象中還擁有一個constructor屬性,用于指向當前類的構造函數。構造函數是類的“公共標識”,而原型對象是類的“唯一標識”。以下是一個類,用于表示點的坐標:

          ES6中的類:在ES6中,類的表示就更具語義化,寫法上更類似于傳統的面向對象語言。它引入了class關鍵字作為類的標識,并將ES5中prototype的constructor屬性直接作為其內部的構造函數,并且在定義類方法時不需要添加function關鍵字,類方法之間也不需要用逗號進行分隔。類中的靜態方法和靜態屬性用static關鍵字表示,一旦類函數和類屬性用static關鍵字標記后,實例對象將不會繼承這些屬性和方法,只能通過類本身來調用。同樣用ES6中的類來表示上述的例子:

          模塊化

          JavaScript模塊化的歷史由來已久,也并非小編用幾行的篇幅就能一語帶過,在這僅對它的特性及應用場景進行籠統的說明,如有對其原委感興趣的讀者,可以搜索其他更詳細的相關資料。

          先來說CommonJS,CommonJS模塊化規范主要應用于服務器端編程,加載模塊的方式屬于同步加載,只有在加載完成之后才能執行后續操作。一個.js文件就是一個CommonJS模塊,在服務器端的模塊文件一般都保存在本地硬盤,所以加載速度較快。每一個模塊都有自己的作用域,里面定義的變量、函數、類都是私有的,對其他文件不可見。NodeJS、webpack就是以CommonJS規范的形式來實現的。

          CommonJS模塊特點:

          所有代碼都運行在模塊作用域,不會污染全局作用域。

          模塊可以多次加載,但是只會在第一次加載時運行一次,然后運行結果就被緩存了,以后再加載,就直接讀取緩存結果。要想讓模塊再次運行,必須清除緩存。

          模塊加載的順序,按照其在代碼中出現的順序。在瀏覽器環境中,對于模塊的下載很大程度上取決于網速的快慢,因此極有可能出現長時間等待現象,從而阻塞瀏覽器的渲染。所以就必須采用異步模式(AMD、CMD)。AMD模塊規范采用異步加載方式,主要用于客戶端瀏覽器環境下,但既可用于瀏覽器端也可用于服務端,CMD則專注于瀏覽器端的模塊化開發。

          AMD和CMD的區別:兩者的區別在于對模塊的加載和執行方式不同,AMD會在加載完模塊的同時去執行模塊,從而擁有延遲低、效率高的特性;CMD則是加載完所有依賴模塊后,再進入程序,遇到需要執行的模塊才會執行相應的操作。

          requireJS是基于AMD規范實現的模塊加載器

          seaJS是基于CMD規范實現的模塊加載器

          繼承

          上文說道,由于js本身并不像其他傳統的面向對象語言那樣,生來就具備類的概念。所以在實現繼承的同時,需要用到js的原型及prototype機制或apply、call、bind方法來實現。這里直接上碼,介紹幾種常見的繼承方式:

          類式繼承

          原型鏈繼承

          繼承

          函數式編程

          JavaScript并不是專門的函數式編程語言,但卻能夠應用函數式編程技術,像對象一樣去操控函數。下面就例舉一些JS函數式編程的典型應用:

          使用非函數式的方式計算數組中元素的平均值和標準差

          使用函數式的編程方式

          同步異步

          單線程是JavaScript語言的一大特點,也就是在同一時間只能做一件事。所謂同步,原意就是程序的執行順序與書寫順尋保持一致;而異步,指的是程序并非按照書寫的順序來執行,會存在“跳過”執行的現象。

          談及JS異步,就不得不提兩個改變執行順序的基礎函數:setTimeout和setInterval函數。這兩個函數在執行時會被壓入事件循環隊列當中,在當前作用域下的所有程序都執行完成后,才會開始執行排列在事件循環隊列當中的函數,所以這兩個函數能夠改變程序的執行順序。來看例子:

          JS正則表達式

          正則表達式大家應該不會陌生,JavaScript中的正則表達式用RegExp類的實例對象來表示,可以使用RegExp()構造函數來創建,也可以用直接量表達式來創建。它的主要功能是用來描述或匹配一段符合某個語法規則的字符串,多用于在一段較長的文本中檢索或替換那些符合模式的字符串內容,也經常用于用戶的輸入校驗。例如,使用如下代碼來解析一個URL:

          事件模型

          JavaScript的事件模型,是所有前端研發工程師必須必須必須弄清楚的一個基礎核心概念!下面為了能讓讀者迅速回憶起這部分相關的理論知識,筆者將以關鍵詞的形式進行闡述。

          DOM事件流:當用戶觸發事件時,該事件首先會從最頂層的document對象開始,自頂向下沿著DOM樹的結構逐層傳播,直到觸發事件的DOM節點對象。之后會從觸發事件的DOM節點對象開始,自底向上逐層傳播,最后返回到最頂層document對象為止。這就是整個事件流傳播的過程。

          事件捕獲:從最頂層的document對象開始,自頂向下沿著DOM樹的結構逐層傳播,直到觸發事件的DOM節點對象的過程。

          事件冒泡:從觸發事件的DOM節點對象開始,自底向上逐層傳播,最后到達最頂層的document對象的過程。

          阻止事件流傳播:既可以阻止事件捕獲階段的傳播,也可以阻止事件冒泡階段的傳播。在支持addEventListener()方法的瀏覽器中,調用事件對象的stopPropagation()方法阻止事件傳播。在IE9之前,設置事件對象的cancelBubble屬性為true來實現阻止事件進一步傳播。

          阻止事件的默認行為:在支持addEventListener()的瀏覽器中,調用事件對象的preventDefault()方法取消事件的默認操作。在IE9之前,設置事件對象的returnValue屬性為false來阻止事件的默認行為。

          事件委托/事件代理:利用事件冒泡的原理,將事件加到目標節點的父級節點上,觸發執行效果。好處就是:(1)可以減少事件綁定的次數,利于提高性能。(2)新添加的元素還會有之前的事件。

          Ajax、跨域訪問

          Ajax是瀏覽器專門用來和服務器進行交互的異步通訊技術,其核心對象是XMLHttpRequest,通過該對象可以創建一個Ajax請求。為了防止XSS攻擊,瀏覽器對Ajax做了限制,不允許Ajax跨域請求服務器,就是只能訪問當前域名下的url。

          JS的跨域訪問,就是在不同的域名下進行HTTP請求與響應。JSONP就是一種常用的跨域通信方式,他利用了腳本跨域能力來模擬Ajax請求。

          JSONP原理:由于Ajax請求受到同源策略的限制,所以無法跨域訪問數據。服務端需要拼接的回調函數及返回數據

          注意:這里用callback參數字段將客戶端需要執行的回調函數名傳給服務端,服務端只需在封裝好json數據后,根據該字段值動態創建同名的回調函數即可。

          DOM

          文檔對象模型(document object model)是用來表示和操作HTML和XML文檔內容的基礎API。Document類型代表了一個HTML或XML文檔,document對象則是用來保存整個web頁面的dom結構,在頁面上所有的元素最終都會映射為一個dom對象。對頁面節點的操作也是通過document對象中的方法來實現的。

          document對象中常用的Dom操作方法有:getElementById();getElementsByClassName();querySelector();getAttribute();等等。

          BOM

          瀏覽器對象模型(browser object model)是用于和瀏覽器窗口進行交互的對象,也可用于窗口與窗口之間的通信。它的核心對象是window,在window對象當中也提供了很多其他對象屬性用于操作和管理瀏覽器的各個部分。常用的window對象屬性有:

          Location對象:表示該窗口中當前顯示的文檔的URL.。

          History對象:用于將窗口的歷史瀏覽記錄用文檔和文檔狀態列表的形式表示。

          Navigator對象:該對象包含了瀏覽器廠商和版本信息。

          Screen對象:它提供了有關窗口顯示大小和可用的顏色數量信息。

          常用的對話框也屬于掛載在window對象上的方法:alert(); confirm(); prompt();


          主站蜘蛛池模板: 波多野结衣AV无码久久一区 | 精品日韩在线视频一区二区三区 | 亚洲一区二区三区丝袜| 亚洲一区无码精品色| 日本美女一区二区三区| 一区二区三区四区精品视频| 国产精品电影一区二区三区| 中文字幕AV无码一区二区三区| 精品人妻少妇一区二区三区在线| 日本免费一区二区三区| 无码人妻精品一区二| 久久精品无码一区二区三区免费 | 亚洲国模精品一区| 亚洲熟妇av一区| 日本亚洲成高清一区二区三区| 一区二区三区视频免费| 国产精品亚洲综合一区在线观看| 精品无码国产一区二区三区AV| 好吊视频一区二区三区| 另类国产精品一区二区| 麻豆AV无码精品一区二区| 国产AV一区二区三区无码野战| 中文字幕一区二区人妻| 国产精品日韩一区二区三区 | 一区 二区 三区 中文字幕 | 国产亚洲福利一区二区免费看| 人妻夜夜爽天天爽一区| 精品永久久福利一区二区| 日本不卡免费新一区二区三区| 国产一区二区三区免费观在线| 成人精品视频一区二区三区| 亚洲福利视频一区二区三区| 亚洲国产一区在线| 老熟妇仑乱一区二区视頻| 久久久久人妻一区二区三区| 亚洲一区二区三区电影| 91video国产一区| 亚洲日韩一区二区三区| 日本一区午夜爱爱| 日韩一区二区久久久久久| 亚洲综合无码一区二区|