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

攜程度假零成本微前端框架-零界

開發 新聞
本文要介紹的——零界微前端,就屬于上述頁面級微前端(page-level),它克服了子應用切換過程的體驗問題。

一、 前言

1.1  微前端的含義

在研發一個系統的初期,我們可以把所有代碼放到一個項目中。隨著企業的發展,業務邏輯越發復雜和專業化,又會細分出不同的研發團隊,獨立負責其中某一部分。

每個開發團隊有他們各自的迭代節奏,很難在耦合的同一個項目中,滿足所有團隊的需求。我們很自然地會將整個系統拆解到多個子應用/子項目中,他們可以獨立開發、獨立部署,但共同協作支撐了系統的整體功能。

當上述系統拆解過程,發生在后端時,它被稱之為——微服務;當它發生在前端時,則被稱之為——微前端。

從某種意義上,微前端是默認值,不需要額外的努力。瀏覽器一開始就實現了通過超鏈接的方式,支持多個 HTML 頁面之間跳轉。

Tim Berners-Lee, a British scientist, invented the World Wide Web (WWW) in 1989, while working at CERN. The Web was originally conceived and developed to meet the demand for automated information-sharing between scientists in universities and institutes around the world.

1989年,英國科學家蒂姆-伯納斯-李在歐洲核子研究中心工作時發明了萬維網(WWW)。萬維網最初是為了滿足世界各地大學和研究所的科學家之間自動分享信息的需求而構思和開發的。

Web 自它被發明開始,就已經是一種服務于跨團隊(不同大學、不同科學組織)之間的溝通與協作的信息技術。

但是,樸素的頁面跳轉,往往會在頁面過渡階段產生白屏,在體驗上不能滿足我們的需求。

因此,當我們說“微前端”時,我們想要達到的目標是:

  • 不同的前端團隊,可以獨立開發和部署他們的應用,滿足自己的迭代需求
  • 多個前端子應用之間的協作與切換,不應該產生不可接受的用戶體驗下降

1.2  微前端的類型

我們可以把微前端按照其拆解的顆粒度,分成:

  • 頁面級微前端(page-level):每個子應用獨享一個頁面,子應用之間的切換就是頁面之間的跳轉/切換。
  • 區域級微前端(section-level):在同一個頁面中,存在兩類區域:

    a. 共享區域,如頂部菜單欄、側邊欄等,由所有子應用共享。

    b. 切換區域,通常作為主體內容呈現,子應用在該區域做局部切換。

頁面級微前端(page-level)是瀏覽器的默認功能,但體驗不佳;因此,當前大部分微前端框架,致力于區域級微前端(section-level),代表框架有 Qiankun,Single-Spa 等。

區域級微前端的主要實現思路,可以粗略概括如下:

  • 代理或劫持 window 環境,讓多個子應用及其依賴的前端框架,可以互不干涉地獨立運行
  • 每個子應用注冊了“創建”與“銷毀”等生命周期,等待主應用根據 url 去驅動和調度它們

區域級微前端(section-level)可以很好地解決某一類微前端場景(如復雜的后臺系統),子應用恰好擁有相同的界面風格,甚至相同的 Layout,如頂部菜單欄、側邊欄等模塊,只有內容主體部分有差異。

然而,在另一些場景中,我們可能仍然需要頁面級微前端(page-level)。

  • 子應用之間擁有不同的 UI 風格,甚至不同的 Layout,它們之間的切換,就是整頁的切換,而不是局部的切換。
  • 我們不希望子應用為了迎合區域級微前端(section-level)的接入要求,而做出巨大的調整,甚至改變開發方式。
  • 子應用需要同時存在,并且可以在切換過程中,以滑入/滑出的動畫方式轉場,在回退過程中,可以自動保持滾動條位置等。
  • etc。

今天我們要介紹的——零界微前端,就屬于上述頁面級微前端(page-level),它克服了子應用切換過程的體驗問題。

二、 零界介紹

2.1 設計理念

  • 成本可控。接入成本不應該隨著應用的接入數量增加而指數級地上升,接入 2 個應用和接入 100 個應用考慮的問題應該是一致的。
  • 真正的技術無關。無論應用使用的是什么技術棧、渲染方式是SSR還是CSR、應用類型是SPA還是MPA,都可以無縫接入。
  • 零耦合。微應用和主應用之間、微應用和微應用之間,完全沒有依賴關系。應用的接入和退出不會對應用本身和已經接入的應用帶來任何副作用。

2.2 基本工作原理

零界作為頁面級微前端(page-level)解決方案,在架構上和區域級微前端(section-level)大體一致,但在實現方式上有所不同。

零界采用經典的基座應用 + 配置的方式來管理子應用。

在零界中,基座又叫做shell 。shell 只做兩件事:存放微應用和調度微應用。

所有微應用都加載在iframe中,零界通過 shell 管理多個iframe的加載和切換。

然而,iframe 會帶來路由不同步的問題。零界通過 history api 如 pushState 和 replaceState,將當前激活的頁面的地址,同步到瀏覽器地址欄里的 location 中,保持了URL 一致。

與市面上微前端框架最大的不同是,在零界中沒有生命周期、Event Bus等復雜的概念,而是監聽微應用的跳轉行為,通過將跳轉記錄存儲在瀏覽器中, 把所有的微應用串聯起來。每一次微應用的跳轉,新的頁面會以 iframe 的形式加載至零界微前端,并且不會立即釋放之前微應用的內存,可以快速回退。為了避免過多的 iframe 導致頁面卡頓,零界限制了 iframe的最大數量。

特點:

  • 無需改造原有代碼。技術棧無關,無需擔心前端開發的難度。
  • 幾乎零接入成本。每個頁面只需引入一個 script 文件,即可加入零界微前端機制。
  • 無刷新切換頁面。提供無刷新頁面切換的 SPA 體驗,給用戶一致性的體驗。
  • 安全可靠。所有頁面可隨時退出零界微前端機制,回歸原始狀態。
  • 狀態同步。刷新頁面不會丟失路由狀態,頁面回退更快展示,并保留前一頁的滾動條以及頁面狀態。
  • 完美隔離。完全隔離了每個頁面的css和js,避免了各個應用之間的變量污染。

2.3 為什么是 iframe

構建區域級微前端(section-level)時,由于 iframe 使用簡單、自帶進程級別隔離等特性,許多開發者都曾考慮使用iframe 構建微前端,但最終都不約而同地放棄了這個方案。

讓我們結合下圖,再回顧下利用 iframe 構建區域級微前端(section-level)可能會帶來的具體問題。

圖片

區域級微前端頁面示意圖

(1)DOM 割裂嚴重。蒙層只能覆蓋其中一個微應用(一塊藍色區域),無法遮住整個應用(整個粉色區域);

(2)通信困難。不同的微應用同時存在于一個頁面,微應用之間需要額外的通訊,而 iframe 只能通過 postmessage 傳遞序列化的消息,無法滿足需求;

(3)加載慢。一個頁面中通常存在多個微應用,微應用會頻繁掛載、卸載,iframe 每一次加載都是一次上下文的重新構建;

(4)路由狀態丟失。刷新頁面后 iframe 會回到首次加載的狀態;

可以看出,這些痛點是由 iframe 自帶的特性導致的,不只是針對區域級微前端(section-level),而是使用 iframe 時要考慮的通用性問題。

現在,我們再站在頁面級微前端(page-level)的角度,逐一思考上面的問題:

圖片

零界微前端頁面示意圖

(1)DOM 割裂嚴重;無需解決? 如上圖所示,所有微應用的展示都是全屏的,不存在蒙層無法全局展開的問題。

(2)通信困難;無需解決? 各個微應用之間原本就屬于完全不同的應用,所以并不用側重于應用之間的通信。

(3)加載慢;無需解決? 在頁面級微前端(page-level)中,每次進入頁面只會加載一個微應用(iframe)。

(4)路由狀態丟失;問題同樣存在于頁面級微前端

也就是說,我們只需要解決瀏覽器歷史記錄同步的問題,就可以最大化利用 iframe 的特性,這就是零界選擇 iframe 管理微應用的原因。

三、 如何使用

3.1 基本使用

圖片

如上圖所示,假設我們現在需要做到上面展示的home Pagepage A,page B 和 page C 這4個頁面無刷新切換的效果,應該如何實現呢?

如果他們是同一個應用的不同組件,則可以通過 React 或 Vue 的 TransiitonGroup 等組件快速實現。

但是,如果他們是 4 個樸素的HTML頁面/應用,可能很難通過傳統前端框架實現,甚至,大多數區域級微前端(section-level)也無法完成。

而在零界中,每個微應用都是全屏的,分別存放在 iframe 里,可以通過操作 iframe 的方式來操作微應用,就像把樣式疊加在普通的 DOM 元素上一樣。

零界針對 H5 頁面模擬了 Native App 中 WebView 切換的機制,也就是上圖的切換效果,接入零界即可開箱即用。

讓我們來看下如何搭建零界微前端。

第一步,創建零界shell。

假設 4 個頁面的地址分別為:

localhost:3000/demo/index.html

localhost:3000/demo/pageA.html

localhost:3000/demo/pageB.html

localhost:3000/demo/pageC.html

圖片

如上圖所示,無需通過 npm/yarn 安裝,也無需調用任何函數,只需要對一個普通的HTML頁面做兩個改動就可以完成 shell 的搭建:

(1)設置接入零界的微應用的匹配路徑。

(2)引入零界shell腳本,引入后就可獲得零界的能力。

第二步,接入零界。

在 4 個應用的 HTML中,分別在 head 標簽里寫入下面的代碼

圖片

我們在接入零界的微應用上,也只做了兩個改動:

(1)配置開啟/關閉零界。

(2)引入零界 page 腳本。

以上就是構建零界微前端的所需的所有代碼。

通過這樣接入有以下 3 個好處:

(1)沒有學習成本,直接引入

(2)不影響應用本身的 SEO

(3)在零界中以子應用運行和應用獨立運行沒有區別,他們的路由路徑一致

另外,我們可以發現,當微應用不能匹配 shell 中配置的路徑,或者微應用關閉了零界時,都無法接入零界。

所以,當一個應用接入零界后導致無法正常訪問時,可以通過配置化的方式遠程關閉零界,這個頁面就會退化為普通頁面,而不必等待 shell 去改變配置。并且,這樣既不影響零界中已有的微應用跳轉,也不影響零界中的微應用跳轉至這個頁面。

3.2 零界進階

上文展示了樸素頁面的切換,體驗了零界在 H5 頁面的滑入滑出的效果。然而樸素頁面并不能滿足我們實際的需求。

想象一下這樣一個場景:有多個 CSR 應用,他們共享同一個 Sidebar,但擁有不同的 Content,直接展示它們都會有一段白屏,我們希望在切換時,消除白屏,直接看到更完整內容的頁面。

這是一個常見的 B 端項目優化需求,區域級微前端(section-level)和頁面級微前端(page-level)都可以提供解決方案。

在現代web開發模式中,通常將頁面中的內容按功能、區域劃分為不同的組件,以提高代碼復用性、擴展性。因此 Sidebar 和 Content 可以視為兩個不同的組件。

區域級微前端(section-level)和頁面級微前端(page-level)對應用中的組件有不同的處理方式,產生了不同的優化策略:?

  • 區域級微前端(section-level)以組件(區域)為單位,拆分原應用,并重構組件。之后,會從組件的角度,考慮如何在基座應用中主動掛載、卸載,達到想要的效果。
  • 頁面級微前端(page-level)以頁面為單位,在不改動原有應用組件的情況下,聚合所有應用。所以聚合之后,會從應用的角度,考慮如何被動式地對內部組件進行優化。

通過區域級微前端解決,大概分為 4 步:

(1)將每個應用中的 Sidebar 和 Content 拆分出來。

(2)把每個 Content 作為一個微應用單獨部署,并配置基礎信息、添加生命周期。

(3)將 Sidebar 直接放入基座應用中,或者,作為一個微應用單獨部署。

(4)創建基座應用,注冊所有的微應用。

在切換應用時,只需卸載前一個應用的 Content,加載下一個應用的 Content 既可,共享的 Sidebar 部分并沒有變動,完全模擬了在一個應用中的切換體驗。

但是,受限于樣式隔離、運行性能、子應用?;畹纫蛩兀枰谑忻嫔犀F有的區域級微前端(section-level)解決方案中權衡,很難找到完全滿足訴求的方案。并且無論是哪種改造方案,都需要較高改造的成本,這個成本還會隨著應用的數量指數級上升。

讓我們來看下頁面級微前端會如何解決。

零界提供了另一種思路,不侵入式地改變原有應用的前提下,優化應用之間的交互。

改造分為 2 步:

(1)創建零界 shell,配置接入微應用的路徑

(2)在所有接入的應用中,引入零界 page 腳本

至此,和之前展示的樸素頁面切換效果一致,但是頁面的跳轉還是產生割裂感。

圖片

為了提升用戶體驗,在零界微前端切換頁面時,頂部會展現 Progressbar,表示頁面切換的進度。

并且,受 Puppeteer 和 Playwright 這兩個e2e測試工具的啟發,零界模擬了里面的 waitFor 功能,如上圖所示,表示等待 Sidebar 組件展示到頁面后,再進行頁面切換。這樣當多個應用在擁有相同 Sidebar 的頁面之間切換時,Sidebar 的部分在視覺上是固定的,只有 Content 發生變化,通過這種方式在多頁應用中獲得沉浸式的體驗。

不僅如此,還可以通過 timeout 設置最長等待時間,一旦超過等待時間,頁面則會強制切換。

這種優化方式帶來以下幾個好處:

  • 應用的 Content 和 Sidebar 的交互,并不需要額外的機制,因為它們本來就是同一個應用的不同組件。
  • 應用不必須攜帶相同的 Sidebar,隨著業務的發展需要可以更靈活地決定自己的 UI,零界不會是應用擴展的瓶頸。

讓我們來對比下優化前后的效果,為了能更直觀地感受其中的差異,我們把網速調整為高速3G。

未經過任何優化,每個頁面都是不同的應用(網速:高速3G)

圖片

經過零界優化后(網速:高速3G)

圖片

可以非常明顯地看出,經過零界優化后,多頁應用的跳轉更為流暢,并且支持快速回退頁面。

細心的讀者可能發現,這兩個動圖的 URL 不一致。這里僅展示零界帶來的優化效果,通過本地 Node 代理服務器完成零界跳轉,所以和應用原有 URL 不同。在開發企業級項目時,通常不存在這個問題,可以通過SLB等方式快速解決。

另外,值得一提的是,零界文檔也是基于零界微前端構建的,可以直接體驗零界在 MPA 中切換的效果,有興趣的話可以查看??零界文檔??。

總結

至此,我們介紹了零界的基本原理和使用方式,其適用場景可以概括如下:

  • 資源整合。組合多個已有的中大型應用,無需重構。
  • MPA優化。將 MPA 的跳轉提升至 SPA 的體驗。
  • H5端體驗優化。低成本通過框架的能力達到 WebView 的切換效果。

雖然零界是頁面級微前端(page-level)解決方案,但這并不表示它和區域級微前端(section-level)是沖突的。如果你想快速體驗微前端,或者你的項目由于現有微前端框架可能帶過高的成本而遲遲沒有落地,那么可以先嘗試使用零界,在零界中可以隨時退出,不會帶來任何副作用。若嘗試后不能滿足需求,再考慮接入顆粒度更細致的區域級微前端(section-level)。

責任編輯:張燕妮 來源: 攜程技術
相關推薦

2024-08-28 09:50:51

2010-05-13 09:24:39

2023-11-27 18:03:41

Python

2020-08-18 10:58:36

PC電腦智能手機電腦密碼

2009-06-18 11:12:49

IP通信

2018-07-25 09:06:18

數據中心機房容災

2011-05-04 14:24:04

iPad打印機

2024-11-04 10:44:15

2023-08-11 09:13:27

2017-09-19 12:17:53

共享醫療邵逸夫醫療

2024-06-03 08:48:16

2018-11-23 10:48:04

云計算開源云服務

2024-06-25 09:35:04

模型訓練

2020-02-25 08:38:13

AI 數據人工智能

2024-04-15 08:53:07

OpenAISoraGIF動畫

2016-01-25 13:53:46

云之家

2012-07-30 16:20:48

2015-04-23 16:17:56

創業微天使聯盟
點贊
收藏

51CTO技術棧公眾號

亚洲制服丝袜在线播放| 欧洲视频一区二区| 综合日韩av| 欧美日韩国产在线一区| 日韩精品一区二区三区视频| 大陆极品少妇内射aaaaa| 国产日本在线视频| 高清视频一区二区| 国产福利电影一区二区三区| 成年人在线看| 中文字幕人妻熟女人妻a片| 国产精品美女免费视频| 野外做受又硬又粗又大视频√| 色欲av伊人久久大香线蕉影院| 久久久久综合| 久久综合电影一区| 精品人妻一区二区三区香蕉| 国产香蕉久久| 天天色 色综合| 亚洲成人一区二区三区| 欧美天堂在线视频| 美女视频免费一区| 欧美一区在线直播| 久久高清无码视频| 久久国产成人午夜av影院宅| 日韩精品在线电影| 日本少妇xxx| 国产精品伦一区二区| 国产第一页在线| 自拍偷拍欧美专区| 亚洲视频axxx| 国产精品无码一区二区三| 日日夜夜精品| 色诱亚洲精品久久久久久| 日本丰满大乳奶| 成年人在线看| 国产亚洲欧洲997久久综合| 99电影在线观看| 亚洲影视一区二区| 中文字幕永久在线视频| 青青草成人免费在线视频| 日韩国产小视频| 日批视频在线播放| 色yeye免费人成网站在线观看| 国产一区二区毛片| 国产精品久久久久久搜索| 免费日韩一级片| 国产综合精品| 久久成人在线视频| 男人晚上看的视频| 成人直播大秀| 国产一区二区三区在线看| 女同毛片一区二区三区| 五月综合久久| 日韩精品视频免费专区在线播放| 色综合久久五月| 国产福利资源一区| 亚洲大胆人体av| 污污免费在线观看| 国产精品流白浆在线观看| 亚洲成av人乱码色午夜| 动漫美女无遮挡免费| 成功精品影院| 亚洲国产欧美在线成人app| yjizz视频| 另类图片第一页| 亚洲精品电影在线观看| 成年人免费观看视频网站| 九一成人免费视频| 有码中文亚洲精品| 亚洲波多野结衣| 午夜天堂精品久久久久| 久久久免费精品| 久久久成人免费视频| 石原莉奈在线亚洲三区| 国产欧美精品日韩| www.中文字幕在线| 三区在线视频| 国产女同性恋一区二区| 伊人久久av导航| 影音先锋在线播放| 午夜精品免费在线观看| 国产精品亚洲αv天堂无码| 日本少妇一区| 91精品啪在线观看国产60岁| 蜜桃色一区二区三区| 窝窝社区一区二区| 日韩中文字幕在线看| 欧美片一区二区| 亚洲欧美日韩视频二区| 国产精品一区二区三区毛片淫片 | 国产精品免费播放| 中文字幕一区二区三区四区| 日本一区午夜艳熟免费| 亚洲涩涩在线| 69p69国产精品| 国产麻豆xxxvideo实拍| 精品国产乱码久久久久久1区2匹| 久久精品国产一区二区三区| 日韩精品国产一区二区| 熟女少妇内射日韩亚洲| 男人av资源站| 久久国产精品亚洲人一区二区三区| 久久久久99精品久久久久| 福利视频一区二区三区| 国产成人精品免高潮在线观看| 日韩一级片在线免费观看| 综合在线视频| 国产91精品久久久| 欧美一级高清大全免费观看| 久久综合网hezyo| 欧美国产在线看| 久久av在线| 2022国产精品| 久久经典视频| 一片黄亚洲嫩模| 五月婷婷之综合激情| 成人午夜淫片100集| 91精品1区| 欧洲精品久久久| jlzzjlzz亚洲女人18| 国产午夜三级一区二区三| 韩国无码av片在线观看网站| 激情中国色综合| 亚洲美女自拍视频| 国产第一页在线播放| 国产在线看一区| 亚洲精品久久区二区三区蜜桃臀 | 中文在线一区二区| 黄色www网站| 亚洲一区二区电影| 久久久国产91| 在线免费观看日韩视频| 国产色婷婷亚洲99精品小说| 丰满爆乳一区二区三区| 91精品尤物| 久久6免费高清热精品| 国产有码在线观看| 国产精品日产欧美久久久久| 欧美精品一区二区三区免费播放| 精品网站aaa| 久久久久国产一区二区三区| 国产高清第一页| 亚洲欧美激情插| 激情图片中文字幕| 99国产精品一区二区| 国产精品一二三在线| 成人性生交大片免费看午夜| 在线一区二区视频| 人妻一区二区视频| 奇米一区二区三区av| 涩涩涩999| 国产精品蜜月aⅴ在线| 最近2019年日本中文免费字幕 | 狠狠久久亚洲欧美| 在线不卡视频一区二区| 992tv国产精品成人影院| 日本片在线看| 欧美丝袜激情| 欧美日本亚洲视频| 精品国产乱码一区二区三 | 日本一区二区三区视频在线播放| 综合久久2023| 亚洲欧美在线看| 亚洲国产精品成人综合久久久| 在线免费av导航| 777午夜精品视频在线播放| 在线观看亚洲网站| 国产成人综合视频| 激情深爱综合网| 一区三区在线欧| 国产精品久久久久久久久免费| 日本在线观看www| 欧美一二三区精品| 国产乡下妇女做爰视频| 91网上在线视频| 亚洲 欧美 日韩系列| 欧美在线二区| 国产在线一区二区三区欧美| 成人性生活av| 日韩视频免费在线观看| 国产成人手机在线| 日韩欧美在线视频日韩欧美在线视频| 精品无码人妻一区二区免费蜜桃| 国内精品伊人久久久久av一坑| 国产精品视频网站在线观看| 羞羞色国产精品网站| 国产精品日韩一区| 牛牛电影国产一区二区| 亚洲人精品午夜在线观看| 一本一道精品欧美中文字幕| 亚洲高清视频中文字幕| www.av天天| 国产成人精品免费一区二区| 久热免费在线观看| 伊人久久大香线| 欧美日韩精品中文字幕一区二区| 成人污版视频| 日韩美女在线观看| av免费在线免费| 亚洲日本aⅴ片在线观看香蕉| 国产精品视频无码| 欧美日韩一区二区三区在线免费观看| 91av手机在线| 99久久国产综合精品女不卡| 涩涩网站在线看| 亚洲女人av| 国产va亚洲va在线va| 色天天久久综合婷婷女18| 加勒比在线一区二区三区观看| 精品久久久网| 日本国产高清不卡| 久草在线视频福利| 日韩一区二区三区xxxx| 午夜福利视频一区二区| 日韩一二三四区| 中文字幕网址在线| 日韩欧美亚洲国产一区| 久久国产在线观看| 日韩毛片一二三区| 婷婷色一区二区三区| 99国产精品久久久久| 91视频免费入口| 久久99久久精品| 国产天堂在线播放| 亚洲综合不卡| 成人一对一视频| 韩国在线视频一区| 2021狠狠干| 天堂网在线观看国产精品| 午夜精品亚洲一区二区三区嫩草| 亚洲人和日本人hd| 国产一区再线| 国产毛片精品| 国产在线资源一区| 久久久久影视| 国产一区二区三区色淫影院| 粉嫩av一区二区| 国产精品一区二区你懂得| 日韩一区二区三区精品| 成人免费在线网址| 精品国产乱码久久久久久樱花| 美国欧美日韩国产在线播放| 久久色中文字幕| 中文字幕日韩欧美| 国产女人爽到高潮a毛片| 欧美日韩一区二区三区四区五区 | 三级在线电影| 精品呦交小u女在线| 欧洲精品久久一区二区| 激情视频一区二区三区| 伊人色综合久久天天五月婷| 成人精品视频| 亚洲欧美日韩在线综合| 日韩毛片视频| 影音先锋在线亚洲| 中文字幕免费一区二区| 免费的一级黄色片| 中文国产一区| 无码精品国产一区二区三区免费| 久久香蕉精品| 免费看污污网站| 老司机免费视频一区二区三区| 亚洲成人福利在线| 国产呦精品一区二区三区网站| 国产黑丝在线视频| 成人免费高清视频| 无码h肉动漫在线观看| 久久久久久麻豆| 中文字幕第69页| 亚洲综合在线视频| wwwwww国产| 欧美日韩国产另类一区| 精品人妻一区二区三区含羞草 | 国产精品综合网站| gogo大尺度成人免费视频| 91超碰在线电影| 免费福利视频一区| 日韩福利视频| 99久久夜色精品国产亚洲1000部| 国内外成人激情免费视频| 秋霞av鲁丝片一区二区| 国产一区二区观看| 欧美精品一区二区三区在线四季 | 亚洲激情自拍图| 韩国免费在线视频| 欧美成人精品一区| 久草在线资源福利站| 国产精品久久国产精品99gif| 国产成人久久精品一区二区三区| 国产精品免费观看高清| 欧美色婷婷久久99精品红桃| 国产资源第一页| 亚洲在线成人| 国产精品探花在线播放| 91在线小视频| 欧美在线视频第一页| 欧美日韩精品在线观看| 亚洲在线精品视频| 亚洲精品99久久久久中文字幕| 自拍视频在线播放| 国语自产在线不卡| 免费视频观看成人| 久久久久网址| 欧美韩日精品| 三年中国国语在线播放免费| 国产91露脸合集magnet| 日本综合在线观看| 天天亚洲美女在线视频| 国产丝袜视频在线观看| 一本一道久久a久久精品逆3p| 秋霞在线午夜| 国产精品一区二区久久| 欧美人成在线观看ccc36| 女同性恋一区二区| 免费观看一级特黄欧美大片| 中文在线永久免费观看| 亚洲伦在线观看| 中文字幕欧美在线观看| 亚洲精品视频在线观看视频| 欧美色图天堂| 91夜夜未满十八勿入爽爽影院| 国产探花在线精品| 狠狠干 狠狠操| 成人av激情人伦小说| 国产女同互慰高潮91漫画| 国产精品久久久久久影视| 国产福利视频网站| www.爱久久| 欧美日韩亚洲网| 青青成人在线| 免费中文字幕在线| 国内精品伊人久久久久av影院 | 免费在线成人av| 一区二区免费不卡在线| 午夜激情在线观看视频| 久久亚洲精华国产精华液| 国产精品theporn动漫| 97成人超碰| 欧美国产精品va在线观看| 91成人app| 亚洲欧美精品| 日本色综合中文字幕| 久久亚洲无码视频| 色先锋资源久久综合| 欧美孕妇孕交| 清纯唯美亚洲激情| 国产成人手机高清在线观看网站| 日韩a在线播放| 久久新电视剧免费观看| 亚洲国产成人精品女人久久| 亚洲男女性事视频| 精品成人av| 午夜精品一区二区在线观看的 | 亚洲成人福利片| 人妻视频一区二区三区| 性欧美激情精品| 日韩有码av| 国产一线二线三线在线观看| 国产精品伦一区| 国产日韩欧美视频在线观看| 久久成人亚洲精品| 激情av综合| 99福利在线观看| 国产欧美视频一区二区三区| 中文字幕日本人妻久久久免费 | 青春草免费在线视频| 翡翠波斯猫1977年美国| 亚洲区第一页| 国产美女免费无遮挡| 欧美色偷偷大香| www免费在线观看| 国产综合 伊人色| 久久亚洲国产精品一区二区| 国产精品视频在| 日韩精品最新网址| 樱花草涩涩www在线播放| 亚洲高清资源综合久久精品| 国产一区二区美女| 日本天堂网在线| 中文字幕日韩欧美在线| 日韩欧美一级| 午夜精品久久久久久久无码 | 深夜福利影院在线观看| 日韩精品亚洲视频| 欧美成人三级| 国产精品www在线观看| 久久久综合网站| 国产毛片毛片毛片毛片| 91精品国产91久久久久久| 成人中文在线| 少妇精品无码一区二区三区| 欧美影院精品一区| 黄页网站在线观看免费| 日韩免费电影一区二区| 国产盗摄女厕一区二区三区| 天天干,天天干| 欧美国产乱视频| 日韩欧美午夜| 人妻丰满熟妇av无码久久洗澡|