精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么你做的H5開屏那么慢?H5首屏秒開方案探討

開發(fā) 開發(fā)工具
隨著移動設(shè)備性能不斷增強,web 頁面的性能體驗逐漸變得可以接受,又因為 web 開發(fā)模式的諸多好處(跨平臺,動態(tài)更新,減體積,無限擴展),APP 客戶端里出現(xiàn)越來越多內(nèi)嵌 web 頁面(為了配上當(dāng)前流行的說法,以下把所有網(wǎng)頁都稱為 H5 頁面,雖然可能跟 H5 沒關(guān)系),很多 APP 把一些功能模塊改成用 H5 實現(xiàn)。

隨著移動設(shè)備性能不斷增強,web 頁面的性能體驗逐漸變得可以接受,又因為 web 開發(fā)模式的諸多好處(跨平臺,動態(tài)更新,減體積,***擴展),APP 客戶端里出現(xiàn)越來越多內(nèi)嵌 web 頁面(為了配上當(dāng)前流行的說法,以下把所有網(wǎng)頁都稱為 H5 頁面,雖然可能跟 H5 沒關(guān)系),很多 APP 把一些功能模塊改成用 H5 實現(xiàn)。

[[219617]]

雖然說 H5 頁面性能變好了,但如果沒針對性地做一些優(yōu)化,體驗還是很糟糕的,主要兩部分體驗:

1.頁面啟動白屏?xí)r間:打開一個 H5 頁面需要做一系列處理,會有一段白屏?xí)r間,體驗糟糕。

2.響應(yīng)流暢度:由于 webkit 的渲染機制,單線程,歷史包袱等原因,頁面刷新/交互的性能體驗不如原生。

本文先不討論第二點,只討論***點,怎樣減少白屏?xí)r間。對 APP 里的一些使用 H5 實現(xiàn)的功能模塊,怎樣加快它們的啟動速度,讓它們啟動的體驗接近原生。

過程

為什么打開一個 H5 頁面會有一長段白屏?xí)r間?因為它做了很多事情,大概是:

初始化 webview -> 請求頁面 -> 下載數(shù)據(jù) -> 解析HTML -> 請求 js/css 資源 -> dom 渲染 -> 解析 JS 執(zhí)行 -> JS 請求數(shù)據(jù) -> 解析渲染 -> 下載渲染圖片

一些簡單的頁面可能沒有 JS 請求數(shù)據(jù) 這一步,但大部分功能模塊應(yīng)該是有的,根據(jù)當(dāng)前用戶信息,JS 向后臺請求相關(guān)數(shù)據(jù)再渲染,是常規(guī)開發(fā)方式。

一般頁面在 dom 渲染后能顯示雛形,在這之前用戶看到的都是白屏,等到下載渲染圖片后整個頁面才完整顯示,首屏秒開優(yōu)化就是要減少這個過程的耗時。

前端優(yōu)化

上述打開一個頁面的過程有很多優(yōu)化點,包括前端和客戶端,常規(guī)的前端和后端的性能優(yōu)化在 PC 時代已經(jīng)有***實踐,主要的是:

1.降低請求量:合并資源,減少 HTTP 請求數(shù),minify / gzip 壓縮,webP,lazyLoad。

2.加快請求速度:預(yù)解析DNS,減少域名數(shù),并行加載,CDN 分發(fā)。

3.緩存:HTTP 協(xié)議緩存請求,離線緩存 manifest,離線數(shù)據(jù)緩存localStorage。

4.渲染:JS/CSS優(yōu)化,加載順序,服務(wù)端渲染,pipeline。

其中對首屏啟動速度影響***的就是網(wǎng)絡(luò)請求,所以優(yōu)化的重點就是緩存,這里著重說一下前端對請求的緩存策略。我們再細分一下,分成 HTML 的緩存,JS/CSS/image 資源的緩存,以及 json 數(shù)據(jù)的緩存。

HTML 和 JS/CSS/image 資源都屬于靜態(tài)文件,HTTP 本身提供了緩存協(xié)議,瀏覽器實現(xiàn)了這些協(xié)議,可以做到靜態(tài)文件的緩存。

總的來說,就是兩種緩存:

1.詢問是否有更新:根據(jù) If-Modified-Since / ETag 等協(xié)議向后端請求詢問是否有更新,沒有更新返回304,瀏覽器使用本地緩存。

2.直接使用本地緩存:根據(jù)協(xié)議里的 Cache-Control / Expires 字段去確定多長時間內(nèi)可以不去發(fā)請求詢問更新,直接使用本地緩存。

前端能做的***限度的緩存策略是:HTML 文件每次都向服務(wù)器詢問是否有更新,JS/CSS/Image資源文件則不請求更新,直接使用本地緩存。那 JS/CSS 資源文件如何更新?常見做法是在在構(gòu)建過程中給每個資源文件一個版本號或hash值,若資源文件有更新,版本號和 hash 值變化,這個資源請求的 URL 就變化了,同時對應(yīng)的 HTML 頁面更新,變成請求新的資源URL,資源也就更新了。

json 數(shù)據(jù)的緩存可以用 localStorage 緩存請求下來的數(shù)據(jù),可以在***顯示時先用本地數(shù)據(jù),再請求更新,這都由前端 JS 控制。

這些緩存策略可以實現(xiàn) JS/CSS 等資源文件以及用戶數(shù)據(jù)的緩存的全緩存,可以做到每次都直接使用本地緩存數(shù)據(jù),不用等待網(wǎng)絡(luò)請求。但 HTML 文件的緩存做不到,對于 HTML 文件,如果把 Expires / max-age 時間設(shè)長了,長時間只使用本地緩存,那更新就不及時,如果設(shè)短了,每次打開頁面都要發(fā)網(wǎng)絡(luò)請求詢問是否有更新,再確定是否使用本地資源,一般前端在這里的策略是每次都請求,這在弱網(wǎng)情況下用戶感受到的白屏?xí)r間仍然會很長。所以 HTML 文件的“緩存”和跟“更新”間存在矛盾。

客戶端優(yōu)化

接著輪到客戶端出場了,桌面時代受限于瀏覽器,H5 頁面無法做更多的優(yōu)化,現(xiàn)在 H5 頁面是內(nèi)嵌在客戶端 APP 上,客戶端有更多的權(quán)限,于是客戶端上可以超出瀏覽器的范圍,做更多的優(yōu)化。

HTML 緩存

先接著緩存說,在客戶端有更自由的緩存策略,客戶端可以攔截 H5 頁面的所有請求,由自己管理緩存,針對上述 HTML 文件的“緩存”和“更新”之間的矛盾,我們可以用這樣的策略解決:

1.在客戶端攔截請求,***請求 HTML 文件后緩存數(shù)據(jù),第二次不發(fā)請求,直接使用緩存數(shù)據(jù)。

2.什么時候去請求更新?這個更新請求可以客戶端自由控制策略,可以在使用本地緩存打開本地頁面后再在后臺發(fā)起請求詢問更新緩存,下次打開時生效;也可以在 APP 啟動時或某個時機在后臺去發(fā)起請求預(yù)更新,提升用戶訪問***代碼的幾率。

這樣看起來已經(jīng)比較***了,HTML 文件在用客戶端的策略緩存,其余資源和數(shù)據(jù)沿用上述前端的緩存方式,這樣一個 H5 頁面第二次訪問從 HTML 到 JS/CSS/Image 資源,再到數(shù)據(jù),都可以直接從本地讀取,無需等待網(wǎng)絡(luò)請求,同時又能保持盡可能的實時更新,解決了緩存問題,大大提升 H5 頁面首屏啟動速度。

問題

上述方案似乎已完整解決緩存問題,但實際上還有很多問題:

1.沒有預(yù)加載:***次打開的體驗很差,所有數(shù)據(jù)都要從網(wǎng)絡(luò)請求。

2.緩存不可控:緩存的存取由系統(tǒng) webview 控制,無法控制它的緩存邏輯,帶來的問題包括:

清理邏輯不可控,緩存空間有限,可能緩存幾張大圖片后,重要的 HTML/JS/CSS 緩存就被清除了。

磁盤 IO 無法控制,無法從磁盤預(yù)加載數(shù)據(jù)到內(nèi)存。

更新體驗差:后臺 HTML/JS/CSS 更新時全量下載,數(shù)據(jù)量大,弱網(wǎng)下載耗時長。

無法防劫持:若 HTML 頁面被運營商或其他第三方劫持,將長時間緩存劫持的頁面。

這些問題在客戶端上都是可以被解決的,只不過有點麻煩,簡單描述下:

1.可以配置一個預(yù)加載列表,在APP啟動或某些時機時提前去請求,這個預(yù)加載列表需要包含所需 H5 模塊的頁面和資源,還需要考慮到一個H5模塊有多個頁面的情況,這個列表可能會很大,也需要工具生成和管理這個預(yù)加載列表。

2.客戶端可以接管所有請求的緩存,不走 webview 默認緩存邏輯,自行實現(xiàn)緩存機制,可以分緩存優(yōu)先級以及緩存預(yù)加載。

3.可以針對每個 HTML 和資源文件做增量更新,只是實現(xiàn)和管理起來比較麻煩。

4.在客戶端使用 httpdns + https 防劫持。

上面的解決方案實現(xiàn)起來十分繁瑣,原因就是各個 HTML 和資源文件很多很分散,管理困難,有個較好的方案可以解決這些問題,就是離線包。

離線包

既然很多問題都是文件分散管理困難引起,而我們這里的使用場景是使用 H5 開發(fā)功能模塊,那很容易想到把一個個功能模塊的所有相關(guān)頁面和資源打包下發(fā),這個壓縮包可以稱為功能模塊的離線包。使用離線包的方案,可以相對較簡單地解決上述幾個問題:

1.可以預(yù)先下載整個離線包,只需要按業(yè)務(wù)模塊配置,不需要按文件配置,離線包包含業(yè)務(wù)模塊相關(guān)的所有頁面,可以一次性預(yù)加載。

2.離線包核心文件和頁面動態(tài)的圖片資源文件緩存分離,可以更方便地管理緩存,離線包也可以整體提前加載進內(nèi)存,減少磁盤 IO 耗時。

3.離線包可以很方便地根據(jù)版本做增量更新。

4.離線包以壓縮包的方式下發(fā),同時會經(jīng)過加密和校驗,運營商和第三方無法對其劫持篡改。

到這里,對于使用 H5 開發(fā)功能模塊,離線包是一個挺不錯的方案了,簡單復(fù)述一下離線包的方案:

1.后端使用構(gòu)建工具把同一個業(yè)務(wù)模塊相關(guān)的頁面和資源打包成一個文件,同時對文件加密/簽名。

2.客戶端根據(jù)配置表,在自定義時機去把離線包拉下來,做解壓/解密/校驗等工作。

3.根據(jù)配置表,打開某個業(yè)務(wù)時轉(zhuǎn)接到打開離線包的入口頁面。

4.攔截網(wǎng)絡(luò)請求,對于離線包已經(jīng)有的文件,直接讀取

5.離線包數(shù)據(jù)返回,否則走 HTTP 協(xié)議緩存邏輯。

離線包更新時,根據(jù)版本號后臺下發(fā)兩個版本間的 diff 數(shù)據(jù),客戶端合并,增量更新。

更多優(yōu)化

離線包方案在緩存上已經(jīng)做得差不多了,還可以再配上一些細節(jié)優(yōu)化:

公共資源包

每個包都會使用相同的 JS 框架和 CSS 全局樣式,這些資源重復(fù)在每一個離線包出現(xiàn)太浪費,可以做一個公共資源包提供這些全局文件。

預(yù)加載 webview

無論是 iOS 還是 Android,本地 webview 初始化都要不少時間,可以預(yù)先初始化好 webview。這里分兩種預(yù)加載:

1.***預(yù)加載:在一個進程內(nèi)***初始化 webview 與第二次初始化不同,***會比第二次慢很多。原因預(yù)計是 webview ***初始化后,即使 webview 已經(jīng)釋放,但一些多 webview 共用的全局服務(wù)或資源對象仍沒有釋放,第二次初始化時不需要再生成這些對象從而變快。我們可以在 APP 啟動時預(yù)先初始化一個 webview 然后釋放,這樣等用戶真正走到 H5 模塊去加載 webview時就變快了。

2.webview 池:可以用兩個或多個 webview 重復(fù)使用,而不是每次打開 H5 都新建 webview。不過這種方式要解決頁面跳轉(zhuǎn)時清空上一個頁面,另外若一個 H5 頁面上 JS 出現(xiàn)內(nèi)存泄漏,就影響到其他頁面,在 APP 運行期間都無法釋放了。

預(yù)加載數(shù)據(jù)

理想情況下離線包的方案***次打開時所有 HTML/JS/CSS 都使用本地緩存,無需等待網(wǎng)絡(luò)請求,但頁面上的用戶數(shù)據(jù)還是需要實時拉,這里可以做個優(yōu)化,在 webview 初始化的同時并行去請求數(shù)據(jù),webview 初始化是需要一些時間的,這段時間沒有任何網(wǎng)絡(luò)請求,在這個時機并行請求可以節(jié)省不少時間。

具體實現(xiàn)上,首先可以在配置表注明某個離線包需要預(yù)加載的 URL,客戶端在 webview 初始化同時發(fā)起請求,請求由一個管理器管理,請求完成時緩存結(jié)果,然后 webview 在初始化完畢后開始請求剛才預(yù)加載的 URL,客戶端攔截到請求,轉(zhuǎn)接到剛才提到的請求管理器,若預(yù)加載已完成就直接返回內(nèi)容,若未完成則等待。

Fallback

如果用戶訪問某個離線包模塊時,這個離線包還沒有下載,或配置表檢測到已有新版本但本地是舊版本的情況如何處理?幾種方案:

1.簡單的方案是如果本地離線包沒有或不是***,就同步阻塞等待下載***離線包。這種用戶打開的體驗更差了,因為離線包體積相對較大。

2.也可以是如果本地有舊包,用戶本次就直接使用舊包,如果沒有再同步阻塞等待,這種會導(dǎo)致更新不及時,無法確保用戶使用***版本。

3.還可以對離線包做一個線上版本,離線包里的文件在服務(wù)端有一一對應(yīng)的訪問地址,在本地沒有離線包時,直接訪問對應(yīng)的線上地址,跟傳統(tǒng)打開一個在線頁面一樣,這種體驗相對等待下載整個離線包較好,也能保證用戶訪問到***。

第三種 Fallback 的方式還帶來兜底的好處,在一些意外情況離線包出錯的時候可以直接訪問線上版本,功能不受影響,此外像公共資源包更新不及時導(dǎo)致版本沒有對應(yīng)上時也可以直接訪問線上版本,是個不錯的兜底方案。

上述幾種方案策略也可以混著使用,看業(yè)務(wù)需求。

使用客戶端接口

網(wǎng)路和存儲接口如果使用 webkit 的 ajax 和 localStorage 會有不少限制,難以優(yōu)化,可以在客戶端提供這些接口給 JS,客戶端可以在網(wǎng)絡(luò)請求上做像 DNS 預(yù)解析/IP直連/長連接/并行請求等更細致的優(yōu)化,存儲也使用客戶端接口也能做讀寫并發(fā)/用戶隔離等針對性優(yōu)化。

服務(wù)端渲染

早期 web 頁面里,JS 只是負責(zé)交互,所有內(nèi)容都是直接在 HTML 里,到現(xiàn)代 H5 頁面,很多內(nèi)容已經(jīng)依賴 JS 邏輯去決定渲染什么,例如等待 JS 請求 JSON 數(shù)據(jù),再拼接成 HTML 生成 DOM 渲染到頁面上,于是頁面的渲染展現(xiàn)就要等待這一整個過程,這里有一個耗時,減少這里的耗時也是白屏優(yōu)化的范圍之內(nèi)。

優(yōu)化方法可以是人為減少 JS 渲染邏輯,也可以是更徹底地,回歸到原始,所有內(nèi)容都由服務(wù)端返回的 HTML 決定,無需等待 JS 邏輯,稱之為服務(wù)端渲染。是否做這種優(yōu)化視業(yè)務(wù)情況而定,畢竟這種會帶來開發(fā)模式變化/流量增大/服務(wù)端開銷增大這些負面影響。手Q的部分頁面就是使用服務(wù)端渲染的方式,稱為動態(tài)直出。

***

從前端優(yōu)化,到客戶端緩存,到離線包,到更多的細節(jié)優(yōu)化,做到上述這些點,H5 頁面在啟動上差不多可以媲美原生的體驗了。

總結(jié)起來,大體優(yōu)化思路就是:緩存/預(yù)加載/并行,緩存一切網(wǎng)絡(luò)請求,盡量在用戶打開之前就加載好所有內(nèi)容,能并行做的事不串行做。這里有些優(yōu)化手段需要做好一整套工具和流程支持,需要跟開發(fā)效率權(quán)衡,視實際需求優(yōu)化。

另外上述討論的是針對功能模塊類的 H5 頁面秒開的優(yōu)化方案,客戶端 APP 上除了功能模塊,其他一些像營銷活動/外部接入的 H5 頁面可能有些優(yōu)化點就不適用,還需要視實際情況和需求而定。另外微信小程序就是屬于功能模塊的類別,差不多是這個套路。

這里討論了 H5 頁面首屏啟動時間的優(yōu)化,上述優(yōu)化過后,基本上耗時只剩 webview 本身的啟動/渲染機制問題了,這個問題跟后續(xù)的響應(yīng)流暢度的問題一起屬于另一個優(yōu)化范圍,就是類 RN / Weex 這樣的方案,有機會再探討。

責(zé)任編輯:武曉燕 來源: 阿里技術(shù)
相關(guān)推薦

2017-08-16 10:57:25

H5HTML開發(fā)

2021-06-08 05:53:31

H5 頁面項目劉海屏適配

2020-12-03 18:07:07

H5主題用戶

2017-11-23 18:19:58

H5

2022-10-26 09:01:55

H5移動端調(diào)試

2022-09-21 11:53:56

無障礙訪問iOS安卓

2015-09-17 10:07:33

2021-07-13 06:51:16

H5web開發(fā)吸頂

2018-08-29 13:57:40

前端性能測試Html5

2015-08-07 13:54:07

H5

2015-08-14 10:42:05

2015-12-23 17:08:25

H5

2017-01-12 16:59:41

H5

2015-07-15 14:38:54

H5移動適配

2015-07-15 12:30:37

移動端H5高清多屏

2018-03-29 14:04:40

APPH5瀏覽器

2015-11-10 11:38:06

2015-09-25 17:54:59

H5游戲

2018-08-01 15:49:51

AndroidH5通信

2017-07-28 08:07:05

點贊
收藏

51CTO技術(shù)棧公眾號

中日韩美女免费视频网站在线观看| 亚洲成a人片在线观看中文| 国产精品福利在线观看网址| 在线观看免费黄色网址| 精品视频在线一区| 精品久久久久久久久久国产 | 国产91欧美| 亚洲乱码国产乱码精品精98午夜| 久久er99热精品一区二区三区| 伊人久久中文字幕| 国产精品vip| 一区二区欧美激情| 手机免费看av片| 国产精品无码久久久久| 精品动漫一区二区| 在线观看污视频| 国产在线视频网| 国产成人精品1024| 国产欧美一区二区三区在线看 | 午夜老司机在线观看| 成人精品高清在线| 成人在线国产精品| 国产美女www| 一本久道久久综合狠狠爱| www.亚洲人.com| 人人人妻人人澡人人爽欧美一区| 一区二区三区免费在线看| 欧美视频日韩视频| 欧美污视频网站| 国产美女情趣调教h一区二区| 日本一区二区三级电影在线观看| 国产一区二区视频在线免费观看| 91女人18毛片水多国产| 日韩制服丝袜av| 欧美一区在线直播| 成人免费a视频| 在线成人av| 欧美极品少妇全裸体| 天堂а√在线中文在线鲁大师| 自拍偷拍精品| 国产偷国产偷亚洲清高网站| 日本护士做爰视频| 国产成人一二片| 精品国产乱码久久久久久久 | 成人av网站免费观看| 午夜久久电影网| 亚洲精品在线三区| 特黄视频免费观看| 婷婷精品久久久久久久久久不卡| 日韩欧美中文字幕在线观看| 欧美三级在线观看视频| 阿v视频在线观看| 亚洲777理论| 欧美日韩精品在线一区二区| 国产中文在线播放| 欧美日韩另类视频| 午夜精品久久久久久久无码| 国产传媒在线观看| 欧美日韩精品在线| 18岁视频在线观看| 久久精品国产福利| 777午夜精品视频在线播放| 亚洲色图偷拍视频| 视频成人永久免费视频| 日韩精品最新网址| 亚洲激情 欧美| 日韩欧美影院| 亚洲最大中文字幕| 亚洲天堂网av在线| 伊人成人在线| 青青久久av北条麻妃黑人| 日韩精品一区不卡| 麻豆国产一区二区| 亚洲一区二区三区四区视频| 成人h动漫精品一区二区无码 | 亚洲日本精品视频| 99国产**精品****| 欧美高清视频一区二区| 日本一级一片免费视频| 丝袜a∨在线一区二区三区不卡 | 国产又爽又黄免费软件| 国产一区在线不卡| 国产亚洲精品久久飘花| 酒色婷婷桃色成人免费av网| 国产精品久久久久久久岛一牛影视 | 欧美一区二区三区四区在线| 国产精品视频午夜| 久久久久久成人网| 一区二区国产在线| 91干在线观看| 在线免费看av的网站| 国产传媒久久文化传媒| 免费观看成人高| 蜜桃视频在线观看www社区 | 黄色网址在线免费看| 免费污视频在线| 色悠悠久久综合| www.污网站| 美女毛片一区二区三区四区| 日韩专区在线播放| www.日本精品| 国内精品写真在线观看| 久久偷看各类wc女厕嘘嘘偷窃| www.亚洲视频| 亚洲第一主播视频| 亚洲一区二区在线视频观看| 亚洲调教一区| 欧美精品在线免费| 成人av网站在线播放| 国产sm精品调教视频网站| 神马影院午夜我不卡| 136福利第一导航国产在线| 欧美视频在线一区二区三区 | 亚洲国产综合91精品麻豆| 精品激情国产视频| 女同性恋一区二区三区| 久久在线视频| 欧洲亚洲在线视频| 国产91免费在线观看| 国产精品丝袜久久久久久app| 人人妻人人澡人人爽欧美一区| 国产成人精选| 亚洲精品少妇网址| 久草视频在线资源| 韩国欧美国产1区| 日韩精品国内| 丝袜诱惑一区二区| 欧美精品一区男女天堂| 日韩激情综合网| 全国精品久久少妇| 久久亚洲一区二区| 中文在线а√在线8| 日韩欧美国产一区二区在线播放 | 4p变态网欧美系列| www.污视频| 亚洲人吸女人奶水| 亚洲免费成人在线视频| 四虎成人精品永久免费av九九| 日本成人激情视频| 日韩三级电影网| 精品久久久久久中文字幕大豆网| 中国特级黄色片| 亚洲欧美色图| 99免费在线观看视频| 超碰在线免费公开| 337p亚洲精品色噜噜| 国产探花在线视频| 久久国产日韩欧美精品| 亚洲一区二区三区乱码| 国产精品成人国产| 日韩性xxxx爱| 国产精品自偷自拍| 亚洲乱码日产精品bd| 国产探花一区二区三区| 欧美搞黄网站| 国产久一道中文一区| 电影k8一区二区三区久久| 亚洲白虎美女被爆操| 国产精品99精品无码视| 91老师国产黑色丝袜在线| 日韩精品无码一区二区三区免费 | a级黄色片网站| 国语精品视频| 欧美疯狂性受xxxxx另类| 乱色精品无码一区二区国产盗| 香蕉成人啪国产精品视频综合网 | 国产91在线播放| 国产精品麻豆一区二区三区| 大色综合视频网站在线播放| 欧美色综合影院| 黄色录像一级片| 懂色av一区二区三区免费看| 阿v天堂2018| 国产乱码精品一区二区亚洲| 成人精品久久一区二区三区| 91精选在线| 亚洲电影免费观看高清| 秋霞av一区二区三区| 综合欧美亚洲日本| 黄色激情在线观看| 久热re这里精品视频在线6| 亚洲精品永久www嫩草| 欧美影院视频| 欧美中文在线免费| 麻豆网站在线| 亚洲国产精品女人久久久| 69亚洲精品久久久蜜桃小说| 中文字幕中文在线不卡住| 国内自拍偷拍视频| 久久久久久久高潮| 91视频成人免费| 香蕉人人精品| 91在线高清视频| 中文字幕在线高清| 欧美成人h版在线观看| 香蕉人妻av久久久久天天| 欧美性受xxxx黑人xyx性爽| 九九免费精品视频| 国产三级一区二区| 国产精品一区二区在线免费观看| 日韩av高清在线观看| 亚洲中文字幕无码一区二区三区| 欧美日韩爱爱| 国产不卡一区二区在线观看| 日本黄色一区| 久久久久中文字幕| 麻豆传媒视频在线| 亚洲欧美日韩在线高清直播| 国产刺激高潮av| 欧美男同性恋视频网站| 久久久久久久久久久久久久av| 亚洲日本成人在线观看| 99精品全国免费观看| 99精品国产热久久91蜜凸| 欧美国产在线一区| 日韩精品电影在线| 99精品视频在线看| 欧美天天视频| 在线观看成人免费| 欧美一区二区三| 韩国成人av| av成人资源| 97人人香蕉| 婷婷成人av| 国产美女扒开尿口久久久| 中文字幕资源网在线观看免费| 欧美极品第一页| a级影片在线观看| 日韩中文综合网| 999在线视频| 在线观看亚洲区| 你懂的在线看| 亚洲欧美国产一区二区三区| 少妇高潮久久久| 亚洲第一精品夜夜躁人人躁| 性一交一乱一乱一视频| 日韩视频免费观看高清完整版| 国产一区二区三区中文字幕| 欧美日免费三级在线| 中文在线观看免费高清| 色又黄又爽网站www久久| 精品国产午夜福利| 色综合中文综合网| 国产又黄又爽又色| 欧美性videos高清精品| 三级黄色在线视频| 狠狠色香婷婷久久亚洲精品| 午夜影院在线看| 欧美午夜精品伦理| 香蕉影院在线观看| 在线观看免费一区| 中文字幕一区二区三区四区免费看| 欧美中文字幕一区二区三区亚洲 | 美女精品一区| 无遮挡又爽又刺激的视频| 男人的天堂亚洲在线| 男人天堂999| 日韩高清一区在线| 在线观看亚洲色图| 狠狠色伊人亚洲综合成人| 亚洲一区二区偷拍| 成人一区二区三区视频 | 中文字幕成人在线观看| 黑人と日本人の交わりビデオ| 国产精品久久久久aaaa樱花| 手机在线免费看毛片| 亚洲一区在线电影| 国产 日韩 欧美 在线| 色欧美片视频在线观看在线视频| 国产精品久久久久久久久夜色| 欧美性猛交xxxxxx富婆| 国产乱码久久久久| 精品国产乱码久久久久久蜜臀 | 牛牛视频精品一区二区不卡| 欧洲精品在线一区| 婷婷综合社区| 免费看一级大黄情大片| 日产国产欧美视频一区精品| 亚洲人视频在线| av一二三不卡影片| аⅴ天堂中文在线网| 亚洲欧美色综合| 欧美videossex极品| 欧美日韩在线一区二区| 国精产品一品二品国精品69xx | 3d成人动漫网站| 人妻少妇精品无码专区久久| 亚洲色图美腿丝袜| av网站在线免费| 全球成人中文在线| 91精品国产色综合久久不卡粉嫩| 国产精品日韩高清| 日韩电影在线视频| 亚洲国产精品无码观看久久| 免费久久99精品国产| 污网站免费观看| 国产精品青草久久| 日韩免费不卡视频| 欧美人妖巨大在线| 无码精品一区二区三区在线| www.国产精品一二区| 在线免费看h| 99在线视频播放| 日韩国产综合| 国自产拍偷拍精品啪啪一区二区| 久久99国产精品麻豆| 欧美做受喷浆在线观看| 亚洲欧美成aⅴ人在线观看| 天天爽夜夜爽人人爽| 日韩欧美国产综合一区| 91se在线| 日韩av免费一区| 久久99精品久久久久久欧洲站| 中文字幕一区二区三区在线乱码 | 国产中文字幕在线观看| 久久久久久国产精品三级玉女聊斋 | 国产精品激情av电影在线观看| 成人性生交大片免费看中文视频| 中文字幕一区二区三区四区五区| 久久午夜影视| 国产一区二区三区四区五区美女| 一区二区三区视频在线观看免费| www.欧美.com| 国产一级免费观看| 欧美一区二区高清| 欧美极品另类| 午夜在线视频| 国产成+人+综合+亚洲欧美丁香花| 91综合久久爱com| 色乱码一区二区三区熟女| 日本中文在线一区| 天天躁日日躁aaaa视频| 欧美日韩精品在线视频| 搡老岳熟女国产熟妇| 欧美激情精品久久久久久蜜臀| 国产激情精品一区二区三区| 一道精品一区二区三区| 麻豆中文一区二区| 人妻无码一区二区三区免费| 欧美日韩中文精品| 成年人视频在线免费观看| 国产精品大陆在线观看| 欧美精品色图| 久久久精品麻豆| 国产精品丝袜久久久久久app| 国产美女www爽爽爽| 在线成人一区二区| 免费一区二区三区四区| 亚洲视频小说| 九色综合狠狠综合久久| 午夜免费激情视频| 日韩精品一区二区三区视频 | 91精品国产99久久久久久| 国产一区调教| 日韩精品视频久久| 国产欧美一二三区| 国产成人无码精品久久久性色| 密臀av在线播放| 久久久久国产精品视频| 久久蜜桃精品| av永久免费观看| 欧美精品日韩一区| 中文字幕在线三区| 国产另类自拍| 日韩精品欧美精品| 亚洲综合视频网站| 精品久久一二三区| 亚洲优女在线| 亚洲一二区在线| 国产精品一区久久久久| 国产精品白浆一区二小说| 亚洲欧美在线一区| 国产精品伦一区二区| 男女啪啪免费观看| 波多野洁衣一区| 少妇无套内谢久久久久| 久久久精品电影| 精品福利网址导航| 激情综合网俺也去| 亚洲桃色在线一区| 天天摸天天干天天操| 国产精品成人aaaaa网站| 亚洲成人精品| 国产精品无码专区| 欧美日韩一级黄| 黄污视频在线观看| 日韩福利在线| 高清在线观看日韩| 无码人妻av免费一区二区三区 | 日韩一级黄色大片| 欧美日韩在线观看首页| 亚洲成人自拍视频| 成人久久视频在线观看| 亚洲精品国产精品国自产网站按摩| 久久成人精品电影| 国产成人1区| 在线播放第一页| 欧美乱妇15p| 一区二区三区四区日本视频| 国产激情片在线观看|