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

大型前端應(yīng)用如何做系統(tǒng)融合?

開(kāi)發(fā) 架構(gòu)
在經(jīng)歷了為期兩個(gè)月的緊張工作后,我們成功地將兩個(gè)大型項(xiàng)目進(jìn)行了深度整合,取得了顯著的階段性成果。通過(guò)這一融合過(guò)程,我們不僅統(tǒng)一了項(xiàng)目的代碼規(guī)范和架構(gòu),還顯著提升了組件的復(fù)用率。

1. 背景介紹

1.1業(yè)務(wù)介紹

A平臺(tái)與B平臺(tái)同屬于同一系統(tǒng)鏈路上,前者主要致力于為用戶提供注冊(cè)入駐服務(wù),后者則專注于提供具體業(yè)務(wù)操作服務(wù)。兩者皆為運(yùn)營(yíng)人員所依賴的在線管理工具。

1.2現(xiàn)狀分析

目前這兩個(gè)平臺(tái)服務(wù)于同一業(yè)務(wù)方,且B應(yīng)用的頁(yè)面已經(jīng)100%嵌入到了A應(yīng)用的平臺(tái)上,除此以外目前存在系統(tǒng)上及體驗(yàn)上的痛點(diǎn)如下:

所以當(dāng)時(shí)我們考慮既然服務(wù)于同一業(yè)務(wù)方是否能在代碼層面上將兩個(gè)平臺(tái)進(jìn)行融合,通過(guò)系統(tǒng)的融合來(lái)達(dá)到優(yōu)化用戶體驗(yàn)以及降本增效的效果呢?

2.成果展示

平臺(tái)融合后,主要的優(yōu)化點(diǎn)體現(xiàn)在以下四方面:

優(yōu)化前(跳轉(zhuǎn)單個(gè)頁(yè)面白屏?xí)r間達(dá)2998ms左右):

優(yōu)化后(跳轉(zhuǎn)單個(gè)頁(yè)面白屏?xí)r間800ms左右):

3. 具體措施

3.1方案調(diào)研

3.1.1部署方式

?部署優(yōu)化:A應(yīng)用前后端合部署,現(xiàn)計(jì)劃分離前端獨(dú)立部署;

?資源節(jié)約:經(jīng)行云部署平臺(tái)調(diào)研,擬采用混合部署策略,將A應(yīng)用與B應(yīng)用前端靜態(tài)資源集中部署于一組容器,以優(yōu)化資源利用;

3.1.2代碼倉(cāng)庫(kù)整合

?A應(yīng)用的三個(gè)項(xiàng)目與后端共享一個(gè)代碼倉(cāng)庫(kù),采用統(tǒng)一的編碼標(biāo)準(zhǔn);而B(niǎo)應(yīng)用則使用獨(dú)立的代碼倉(cāng)庫(kù),需從中分離出前端代碼,并確保分離過(guò)程不影響現(xiàn)有配置;

3.1.3項(xiàng)目框架

?4個(gè)項(xiàng)目的技術(shù)選型框架都為vue2,依賴項(xiàng)略有不同;

3.1.3系統(tǒng)權(quán)限

?A應(yīng)用和B應(yīng)用為erp登錄;

3.2架構(gòu)設(shè)計(jì)

為了讓用戶融合無(wú)體驗(yàn)差別,兩個(gè)平臺(tái)的用戶繼續(xù)使用各自的域名進(jìn)行訪問(wèn),融合后的項(xiàng)目可以自動(dòng)識(shí)別當(dāng)前環(huán)境,加載對(duì)應(yīng)的內(nèi)容;保證融合前后用戶查看的內(nèi)容是一致的;

3.3具體方案

3.3.1 目錄結(jié)構(gòu)設(shè)計(jì)

針對(duì)融合,我們首先考慮的是融合后如何防止文件沖突,減少融合的復(fù)雜度,降低出問(wèn)題的概率。保證兩個(gè)系統(tǒng)能正常運(yùn)行;拆分邏輯分以下三個(gè)方面:

1)文件拆分與分類

兩個(gè)系統(tǒng)涉及到幾十個(gè)文件,經(jīng)過(guò)分析,我們將其拆分成以下幾部分內(nèi)容:【頁(yè)面文件、公共組件文件、mock文件、AxPI接口文件、基礎(chǔ)請(qǐng)求封裝文件、路由組件文件、Store文件、公共樣式文件、公共方法組件、mainjs文件、index.html文件】

2)結(jié)構(gòu)整合與差異化處理

由于兩個(gè)項(xiàng)目的結(jié)構(gòu)相似,我們可以針對(duì)各個(gè)部分進(jìn)行整合。整體的思路是,對(duì)于差異比較大的文件,建立兩個(gè)獨(dú)立的文件夾,分別包含系統(tǒng)A和系統(tǒng)B的內(nèi)容;然后通過(guò)一個(gè)index文件,識(shí)別到當(dāng)前的運(yùn)行環(huán)境是系統(tǒng)A還是系統(tǒng)B,再分別加載對(duì)應(yīng)的內(nèi)容;

3)內(nèi)容融合與沖突解決

針對(duì)差異比較小或者無(wú)差異的文件,我們將文件內(nèi)容進(jìn)行融合。對(duì)于沖突的內(nèi)容,我們進(jìn)行了手動(dòng)修改,并對(duì)全局引用部分進(jìn)行同步修改;

├── root
│   ├── mocks
│   ├── public
│   ├── src
│   │   ├── api
│   │   │   ├── apiA      // 存儲(chǔ) A 業(yè)務(wù)請(qǐng)求接口
│   │   │   ├── apiB       // 存儲(chǔ) B 業(yè)務(wù)請(qǐng)求接口
│   │   │   ├── apiC         // 存儲(chǔ) C 業(yè)務(wù)請(qǐng)求接口
│   │   │   ├── baseHttp.js   // 封裝基礎(chǔ)請(qǐng)求
│   │   │   ├── ARequest.js   // A業(yè)務(wù)的公共處理,請(qǐng)求header和響應(yīng)code碼等處理
│   │   │   ├── BRequest.js  //  B業(yè)務(wù)的公共處理,請(qǐng)求header和響應(yīng)code碼等處理
│   │   │   ├── CRequest.js   // C業(yè)務(wù)的公共處理,請(qǐng)求header和響應(yīng)code碼等處理
│   │   │   ├── DRequest.js  //  D業(yè)務(wù)的公共處理,請(qǐng)求header和響應(yīng)code碼等處理
│   │   ├── assets
│   │   │   ├── icons     // icon內(nèi)容
│   │   ├── common
│   │   │   ├── config
│   │   │   ├── styles      // 一些公共的樣式
│   │   ├── components      // 公共組件
│   │   ├── directive       // 自定義指令
│   │   ├── layout        //公共布局
│   │   ├── router
│   │   │   ├── a.js   // 對(duì)應(yīng)a應(yīng)用
│   │   │   ├── b.js   // 對(duì)應(yīng)b應(yīng)用
│   │   │   ├── c.js   // 對(duì)應(yīng)c應(yīng)用
│   │   │   ├── index.js
│   │   ├── store
│   │   │   ├── modules
│   │   │   ├── getters.js
│   │   │   ├── index.js
│   │   ├── utils   
│   │   ├── views
│   │   │   ├── a    // a 業(yè)務(wù)文件
│   │   │   ├── b    // b 業(yè)務(wù)文件
│   │   │   ├── c    // c 業(yè)務(wù)文件
│   │   ├── main.js
│   │   └── App.vue
│   ├── env
│   ├── package.json

3.3.2. 應(yīng)用類型判斷

應(yīng)用類型判斷是我們重要的一環(huán),是我們識(shí)別環(huán)境的基礎(chǔ),當(dāng)用戶通過(guò)不同的域名訪問(wèn)到應(yīng)用的時(shí)候,前端維護(hù)一個(gè)映射表,不同的域名代表不同的應(yīng)用;在main.js文件中會(huì)在第一時(shí)間執(zhí)行判斷識(shí)別;

let APPLICATION_TYPE = 'a'
let host = window.location.host;

// 維護(hù)域名列表,包含測(cè)試和線上環(huán)境
const A_HOST = ['a.com','a_pre.com']
const B_HOST = [] 
const C_HOST = []
const D_HOST = []

if(A_HOST.includes(host)){
    APPLICATION_TYPE = 'a'
}else if(B_HOST.includes(host)){
    APPLICATION_TYPE = 'b'
}else if(C_HOST.includes(host)){
    APPLICATION_TYPE = 'c'
}else if(D_HOST.includes(host)){
    APPLICATION_TYPE = 'd'
}
// 掛載全局
window._APPLICATION_TYPE = APPLICATION_TYPE

3.3.3. 路由設(shè)計(jì)

根據(jù)不同的域名獲取路由配置,根據(jù)路由配置生成路由;系統(tǒng)A和系統(tǒng)B各自維護(hù)一個(gè)路由列表;當(dāng)從后端請(qǐng)求回來(lái)路由結(jié)構(gòu)之后,根據(jù)不同的應(yīng)用映射不同的文件內(nèi)容;其中路由path保持不變,compoent增加前綴(應(yīng)用類別)找到對(duì)應(yīng)的應(yīng)用下的組件;

?第一步:前端獲取當(dāng)前域名,確認(rèn)當(dāng)前應(yīng)用

根據(jù)全局的 APPLICATION_TYPE 字段識(shí)別

?第二步:前端維護(hù)一個(gè)路由列表

let router=[
{
    path: '/home',
    component: Layout,
    meta: {  title: '首頁(yè)', icon: 'el-icon-s-grid', alwaysShow: true },
    redirect: '/home',
    children: [
      {
        path: '/home',
        component: () => import('@/views/home/index'),
        name: 'home',
        meta: { title: '首頁(yè)', icon: ''}
      }
    ]
  }
]

?第三步:根據(jù)當(dāng)前應(yīng)用請(qǐng)求后端接口,獲取路由配置信息(component的路徑前拼接各個(gè)應(yīng)用的文件名)

let RouterApi={'a':'/api1','b':'/api2','c':'api3'}
api.get(RouterApi[APPLICATION_TYPE])
component='各個(gè)應(yīng)用文件名'+接口返回路徑

?第四步:針對(duì)在路由信息放置在前端的應(yīng)用,前端維護(hù)一個(gè)路由的配置信息表

import dRouter from './d.json'
if(APPLICATION_TYPE==='d'){
   router=dRouter
}

?第五步:根據(jù)路由配置信息,生成路由結(jié)構(gòu)

?第六步:實(shí)例化Vue對(duì)象

3.3.4. 環(huán)境變量設(shè)計(jì)

環(huán)境主要分為以下幾種:mock環(huán)境、本地開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、線上環(huán)境

不同的環(huán)境對(duì)應(yīng)不同的變量文件,在變量文件中設(shè)置每個(gè)端需要用到的參數(shù),結(jié)合 APPLICATION_TYPE 和變量文件的配置,獲取到對(duì)應(yīng)的參數(shù)

示例:

# .env.pruduction

# a 業(yè)務(wù)
VUE_APP_A_BASEURL = ''   
# b 業(yè)務(wù)
VUE_APP_B_BASEURL = ''
# c 業(yè)務(wù)
VUE_APP_C_BASEURL = ''
# d業(yè)務(wù)
VUE_APP_D_BASEURL = ''

3.3.5. 請(qǐng)求設(shè)計(jì)

1)公共請(qǐng)求的封裝

封裝基礎(chǔ)的公共請(qǐng)求createHttp.js,各業(yè)務(wù)基于公共的請(qǐng)求和各自的code碼,請(qǐng)求參數(shù)等信息進(jìn)行再次封裝,然后可以按照業(yè)務(wù)需求調(diào)用;

?基礎(chǔ)請(qǐng)求:createHttp.js

?業(yè)務(wù)公共封裝:

a. ARequest.js(A業(yè)務(wù)公共參數(shù)和code碼處理)

b. BRequest.js (B業(yè)務(wù)公共參數(shù)和code碼處理)

c. CRequest.js(C業(yè)務(wù)公共參數(shù)和code碼處理)

d. DRequest.js(D業(yè)務(wù)公共參數(shù)和code碼處理)

?業(yè)務(wù)層調(diào)用:

a. api/apiA A業(yè)務(wù)接口

b. api/apiB B業(yè)務(wù)接口

c. api/apiC C業(yè)務(wù)接口

// 公共請(qǐng)求封裝  baseHttp.js
export const createHttp = (baseUrl, successFun = () => {}, errorFun = () => {}, requestInterceptor = () => {}) => {
  const http = axios.create({
    baseURL: baseUrl,
    timeout: 5 * 60 * 1000,
    withCredentials: true
  })
  // http request 攔截器
  http.interceptors.request.use(
    async config => {
      await requestInterceptor(config)
      return config
    },
    err => {
      return Promise.reject(err)
    }
  )
  // http response 攔截器
  http.interceptors.response.use(successFun, errorFun)
  return http
}
2) 直接調(diào)用后端服務(wù)請(qǐng)求封裝
//A業(yè)務(wù)基礎(chǔ)請(qǐng)求 
function requestInterceptor(){
    // A系統(tǒng)公共請(qǐng)求參數(shù)處理... 
}
function successFn(){
    // A系統(tǒng)公共響應(yīng)結(jié)果處理 統(tǒng)一新增
}
function errorFn(){
    // A共異常處理 包括code碼等情況
}
export default createHttp(baseUrl,successFn,errorFn,requestinterceptor)

3)業(yè)務(wù)接口使用,根據(jù)不同的業(yè)務(wù)劃分不同的目錄分支

// A業(yè)務(wù)請(qǐng)求調(diào)用
ARequest.get(url,{params:data})
//B業(yè)務(wù)請(qǐng)求調(diào)用
BRequest.post(url,{params:data})

3.3.6. 權(quán)限和登錄

根據(jù)應(yīng)用類型字段APPLICATION_TYPE,識(shí)別不同的環(huán)境,請(qǐng)求不同的服務(wù)端接口;不同的服務(wù)端代表了不同的應(yīng)用;

針對(duì)不同的應(yīng)用的未登錄情況,前端維護(hù)多套登錄處理邏輯,根據(jù)應(yīng)用類型進(jìn)行不同的處理邏輯;

3.3.7. 公共函數(shù)設(shè)計(jì)

創(chuàng)建一個(gè)公共的utils文件夾,針對(duì)兩個(gè)項(xiàng)目中的公共函數(shù)進(jìn)行合并,針對(duì)有沖突的函數(shù),進(jìn)行命名修改,全局引入的部分進(jìn)行路徑和函數(shù)的同步修改;

3.3.8. 腳手架配置設(shè)計(jì)

梳理了兩個(gè)項(xiàng)目的腳手架配置差異項(xiàng)及各個(gè)配置的作用,對(duì)配置作了部分的修改和優(yōu)化,在滿足原有的功能情況下不影響正常的項(xiàng)目運(yùn)行;

3.3.9. Vuex store設(shè)計(jì)

store的整體結(jié)構(gòu)保持不變,在項(xiàng)目引用的地址也保持不變,由于項(xiàng)目中使用store的地方較多,保持結(jié)構(gòu)不變能保證改動(dòng)成本最小,針對(duì)兩個(gè)項(xiàng)目中模塊名重復(fù)的情況,手動(dòng)把模塊里的內(nèi)容進(jìn)行合并;

針對(duì)現(xiàn)有的名稱重復(fù)內(nèi)容不一樣的函數(shù),根據(jù)應(yīng)用類型字段 APPLICATION_TYPE 把兩個(gè)函數(shù)進(jìn)行融合進(jìn)行分別處理;

3.3.10. 頁(yè)面引用設(shè)計(jì)

?引用方式變更

由于業(yè)務(wù)需求,應(yīng)用A中嵌套了應(yīng)用B的頁(yè)面,之前通過(guò)iframe引用。融合后,頁(yè)面文件和組件不再隔離,可以直接引入應(yīng)用B的文件和組件;

?后端數(shù)據(jù)打通

應(yīng)用A的后端服務(wù)器上有一些功能,如下載列表,應(yīng)用B項(xiàng)目需要使用時(shí)因數(shù)據(jù)不通難以直接引用。前端融合后,可以在應(yīng)用B中直接引用應(yīng)用A的頁(yè)面組件,實(shí)現(xiàn)業(yè)務(wù)的順暢使用。效果如下:

4. 總結(jié)

在經(jīng)歷了為期兩個(gè)月的緊張工作后,我們成功地將兩個(gè)大型項(xiàng)目進(jìn)行了深度整合,取得了顯著的階段性成果。通過(guò)這一融合過(guò)程,我們不僅統(tǒng)一了項(xiàng)目的代碼規(guī)范和架構(gòu),還顯著提升了組件的復(fù)用率。盡管在這個(gè)過(guò)程中我們遇到了諸多挑戰(zhàn)和曲折,但最終的成果——用戶體驗(yàn)的顯著提升——使一切努力都顯得彌足珍貴。

我們深知,每一個(gè)成功的項(xiàng)目背后都有無(wú)數(shù)次的嘗試和優(yōu)化。在這個(gè)過(guò)程中,我們不斷學(xué)習(xí)、適應(yīng)和完善,最終實(shí)現(xiàn)了項(xiàng)目的無(wú)縫融合。我們相信,這段經(jīng)歷和我們所取得的成果,不僅為我們團(tuán)隊(duì)帶來(lái)了寶貴的經(jīng)驗(yàn)和教訓(xùn),也可能為那些正在經(jīng)歷類似挑戰(zhàn)的同學(xué)提供了一些啟示和幫助。

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2022-10-19 14:16:18

樣式隔離前綴css

2019-01-17 10:58:37

2011-06-01 13:20:29

ipad平板電腦移動(dòng)開(kāi)發(fā)

2018-11-01 14:12:03

前端架構(gòu)Javascript

2022-08-29 08:08:58

SQLOracleCPU

2022-08-03 09:11:31

React性能優(yōu)化

2019-12-13 08:52:48

高并發(fā)系統(tǒng)限流

2024-03-01 12:16:00

分布式系統(tǒng)服務(wù)

2024-02-29 12:54:00

API網(wǎng)關(guān)微服務(wù)

2024-11-12 16:58:35

2025-05-07 08:20:00

Flink壓測(cè)大數(shù)據(jù)

2025-05-09 08:30:00

2015-07-30 11:21:16

代碼審查

2017-10-31 10:43:57

數(shù)據(jù)中心機(jī)房消防

2019-10-09 10:06:48

容器監(jiān)控軟件

2017-12-12 16:17:55

微服務(wù)系統(tǒng)運(yùn)維

2022-02-17 13:18:58

定價(jià)模型營(yíng)銷AHP

2012-03-12 16:42:54

測(cè)試

2023-12-29 10:04:47

數(shù)據(jù)分析

2013-07-24 10:01:24

產(chǎn)品設(shè)計(jì)產(chǎn)品經(jīng)理新手做產(chǎn)品
點(diǎn)贊
收藏

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

国产小视频一区| 国产第一页精品| aa视频在线观看| 久久综合九色综合欧美98| 欧洲午夜精品久久久| japanese中文字幕| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 国产精品国产三级欧美二区| 久久久精品福利| 亚洲a一区二区三区| 日韩国产高清视频在线| 日韩av片专区| 在线天堂资源| 综合婷婷亚洲小说| 精品无人乱码一区二区三区的优势| 国产伦精品一区二区三区视频我| 综合在线视频| 亚洲欧美国产日韩中文字幕| 日本在线观看视频一区| 在线免费看h| 亚洲激情成人在线| 亚洲春色综合另类校园电影| 蜜桃av噜噜一区二区三区麻豆| 日本午夜一区二区| 亚洲**2019国产| 精品国产国产综合精品| 免费成人av| 日韩视频免费观看高清完整版| aaaaaa亚洲| 久草在线资源站资源站| 国产精品成人一区二区三区夜夜夜| 国产呦系列欧美呦日韩呦| 国产一区二区麻豆| 日韩电影在线观看一区| 91精品国产一区| 久久久国产精品黄毛片| 五月天综合网站| 在线亚洲国产精品网| 亚洲精品乱码久久久久久不卡| 色8久久久久| 欧美性高清videossexo| 免费无码av片在线观看| hd国产人妖ts另类视频| 国产精品久久久久久久浪潮网站| 欧美精品在线一区| 欧美成人综合在线| 91污在线观看| 久久99精品国产一区二区三区| 亚洲女人18毛片水真多| 国产精品18久久久久久久久久久久| 国产日韩在线免费| 99久久久无码国产精品免费蜜柚 | 欧美激情极品视频| 希岛爱理中文字幕| 一级毛片免费高清中文字幕久久网| 中文字幕日韩av电影| 色一情一交一乱一区二区三区| 精品淫伦v久久水蜜桃| 欧美mv日韩mv国产网站app| 亚洲三级在线观看视频| 四虎地址8848精品| 欧美日本一区二区三区| 亚洲娇小娇小娇小| 亚洲高清国产拍精品26u| 欧美亚洲一区二区在线| 亚洲综合色在线观看| 激情小说亚洲| 欧美精品黑人性xxxx| 久久久久久久久久一区| 国产999精品在线观看| 色哟哟欧美精品| 亚洲精品一二三四五区| 日韩一区二区三免费高清在线观看| 欧美日韩国产天堂| 国产一级片中文字幕| 午夜日韩影院| 精品偷拍一区二区三区在线看| 亚洲av无码成人精品国产| 亚洲最好看的视频| 中日韩午夜理伦电影免费 | 亚洲大片精品永久免费| 麻豆tv在线播放| 午夜欧美巨大性欧美巨大| 精品污污网站免费看| 香蕉视频xxx| 久久久久97| 在线观看欧美www| 九九在线观看视频| 亚洲影视在线| 国产在线播放不卡| 天堂av2024| 国产精品素人一区二区| 日韩激情视频一区二区| 成人啊v在线| 欧美一区二区三区性视频| 国产十八熟妇av成人一区| 久久爱www成人| 麻豆乱码国产一区二区三区 | 国产精品99久久久久久久| 午夜性色福利视频| 亚洲欧美综合网| 免费看的黄色大片| 欧美日韩视频免费看| 日韩女优视频免费观看| 国产jk精品白丝av在线观看 | 视频一区视频二区国产精品 | dy888夜精品国产专区| 国产在线中文字幕| 亚洲午夜视频在线观看| 国产成人美女视频| 香蕉人人精品| 欧美贵妇videos办公室| 国产精品无码一区| 91在线播放网址| 中文字幕第一页亚洲| 日韩免费电影| 亚洲第一免费播放区| 日本一级特级毛片视频| 久久国产精品99国产| 91av免费看| 日本中文字幕伦在线观看| 色综合一个色综合| 人妻 日韩 欧美 综合 制服| 99久久夜色精品国产亚洲狼| 日本欧美国产在线| 四虎永久在线精品免费网址| 亚洲黄色免费电影| 国产无色aaa| 青青草成人影院| 热久久99这里有精品| 男人天堂手机在线观看| 亚洲免费看黄网站| 国产无色aaa| 97精品在线| 国产精品一区二区三区久久久 | jizz18欧美18| 中文字幕一区二区三区电影| www毛片com| 91女厕偷拍女厕偷拍高清| 久久99久久久久久| 日韩中文在线| 久久成人免费视频| 97视频免费在线| 国产精品久久久久久久久快鸭| 五月天婷婷激情视频| 精品国产乱码久久久久久果冻传媒 | 九九久久99| 国产资源在线观看入口av| 亚洲电影免费观看高清完整版在线| 玖玖爱这里只有精品| 国内精品久久久久影院一蜜桃| 一区二区三区四区五区视频| 成人h在线观看| 色黄久久久久久| 在线免费av网| 亚洲三级免费观看| 色婷婷综合在线观看| 亚洲有吗中文字幕| 超碰97人人人人人蜜桃| 国语对白在线刺激| 精品精品欲导航| 国产成人免费观看视频| 久久综合色之久久综合| 亚洲五月天综合| 日韩片欧美片| 91中文字幕一区| 黄页网站在线| 亚洲另类图片色| 国产成人精品亚洲| 自拍偷拍亚洲激情| 免费黄色在线播放| 日韩天堂av| 日本最新一区二区三区视频观看| 丰满少妇一区| 欧美成人免费观看| 人妻精品一区二区三区| 一本久道久久综合中文字幕| 国产又粗又长免费视频| 国产馆精品极品| 欧美 国产 综合| 日本一区二区免费高清| 99在线首页视频| 中文字幕这里只有精品| 中文字幕亚洲在线| 亚洲精品久久久久久久久久久久久久| 亚州成人在线电影| av永久免费观看| 国产精品乡下勾搭老头1| 好吊妞无缓冲视频观看| 日韩免费看片| 国产偷久久久精品专区| 视频精品导航| 久久久久久亚洲精品中文字幕| 经典三级在线| 欧美变态凌虐bdsm| 波多野结衣理论片| 一区二区三区不卡视频| 无码 人妻 在线 视频| 国产成人午夜精品影院观看视频| 欧美成人一区二区在线观看| 日韩在线观看| 激情视频一区二区| 欧洲美女精品免费观看视频| 久久免费视频网| 91在线播放网站| 亚洲国产中文字幕久久网| 在线观看免费观看在线| 欧美日韩视频免费播放| 2025国产精品自拍| 国产丝袜美腿一区二区三区| 婷婷五月精品中文字幕| 国内久久精品视频| 日韩视频免费在线播放| 亚洲精品四区| 国产人妻人伦精品| 日韩a一区二区| 久久亚洲高清| 波多野结衣在线一区二区| 国产精品国产亚洲伊人久久 | 99精品综合| 欧美精品中文字幕一区二区| 超碰cao国产精品一区二区| 国产欧美一区二区三区视频| 亚洲美女久久精品| 97视频免费在线看| 久久免费电影| 欧美日韩第一页| 国产写真视频在线观看| 色妞在线综合亚洲欧美| 狠狠狠综合7777久夜色撩人| 亚洲成人亚洲激情| 性生活视频软件| 欧美一区二区三区在线| 国产又黄又爽视频| 欧美男女性生活在线直播观看| 久久久久久无码午夜精品直播| 欧美日韩综合视频网址| 欧美成人精品欧美一级乱黄| 一区二区三区高清不卡| 一级黄色录像视频| 一区二区三区四区在线免费观看| 性欧美疯狂猛交69hd| 中文字幕一区三区| 99热6这里只有精品| 国产精品福利电影一区二区三区四区| av女人的天堂| 国产欧美一区二区三区网站| 国产美女免费网站| 国产欧美日韩视频在线观看| 日韩av片在线| 国产精品福利电影一区二区三区四区| 亚洲高潮女人毛茸茸| 国产精品久久久久久一区二区三区| 国产一二三四区在线| 国产精品亲子伦对白| 毛片久久久久久| 国产精品久久久久久亚洲伦| 国产精品麻豆免费版现看视频| 国产精品你懂的在线| 亚洲区一区二区三| 亚洲美女屁股眼交3| 麻豆视频在线观看| 午夜亚洲国产au精品一区二区| 日本亚洲欧美在线| 欧美视频在线看| 国产精品sm调教免费专区| 欧美日韩夫妻久久| 精品黑人一区二区三区国语馆| 欧美大片免费久久精品三p| 狠狠综合久久av一区二区 | 免费大片在线观看www| 久久久久北条麻妃免费看| 性爱视频在线播放| 91禁国产网站| 成人看片网页| 亚洲一区二区中文| 久久久久97| 亚洲欧美日韩精品在线| 欧美在线影院| av黄色在线网站| 麻豆一区二区三| av电影中文字幕| 国产网站一区二区三区| 成人在线观看小视频| 香蕉加勒比综合久久| 欧美亚洲另类小说| 欧美一级免费观看| 香蕉久久国产av一区二区| 伊人久久精品视频| 人妖欧美1区| 国产成人精品久久| 亚洲无线观看| 亚洲高清乱码| 亚洲麻豆视频| 亚洲va在线va天堂va偷拍| av一区二区三区| 美国一级片在线观看| 精品动漫一区二区三区| 一区二区 亚洲| 亚洲精品www久久久| 久草免费在线观看| 欧美中文在线视频| 亚洲日本va午夜在线电影| 日韩精品一线二线三线| 黑丝一区二区三区| 天堂视频免费看| 久久夜色精品国产噜噜av| 青青青在线视频| 欧美三级欧美一级| 色视频免费在线观看| 欧美xxxx做受欧美.88| 日韩欧美一区二区三区在线观看 | 色婷婷激情五月| www.久久撸.com| 欧美国产大片| 国产亚洲欧美一区二区| 五月开心六月丁香综合色啪| 那种视频在线观看| www.亚洲色图| 久操免费在线视频| 欧美福利视频一区| www.亚洲.com| 国产999精品久久久| 精品国产午夜肉伦伦影院| 日本一级淫片演员| 美女一区二区视频| av网站免费在线看| 欧美日韩亚洲高清| 日本激情一区二区| 欧美精品久久久久久久免费观看| **国产精品| 日本一区二区免费高清视频| 蜜桃久久av一区| 国产午夜福利一区| 91精品1区2区| 国产在线电影| 国产不卡一区二区在线播放| 牲欧美videos精品| 国产一区二区在线视频播放| 成人激情小说网站| 青青草原在线免费观看视频| 日韩欧美视频一区| 欧美日韩在线视频免费观看| 91成人免费观看| 欧美国产三区| 国产精品19p| 夜夜操天天操亚洲| 欧美 日韩 国产 成人 在线 91 | 久久精品人妻一区二区三区| 日韩网站在线看片你懂的| 宅男在线观看免费高清网站 | 欧美女王vk| 99热手机在线| 国产精品夫妻自拍| 国产日韩欧美中文字幕| 超碰91人人草人人干| 警花av一区二区三区| 97av中文字幕| 成人va在线观看| 日韩免费视频网站| 亚洲精品中文字幕女同| 日韩中文视频| 熟妇熟女乱妇乱女网站| 丁香婷婷深情五月亚洲| 国产情侣自拍av| 国产亚洲精品日韩| 巨大黑人极品videos精品| 超碰97在线看| www.亚洲在线| 日韩欧美一级大片| 久久成人av网站| 欧美日韩另类图片| 久久精品免费网站| 亚洲免费三区一区二区| 香港三日本三级少妇66| 国产精品爽爽爽爽爽爽在线观看| 久久久久亚洲| 亚洲第九十七页| 欧美日韩一本到| 女囚岛在线观看| 欧洲亚洲一区| 国产精品亚洲第一区在线暖暖韩国| 国产精品美女毛片真酒店| 亚洲色图35p| 秋霞影院一区| 999香蕉视频| 一区二区免费在线| 九九在线视频| 不卡一区二区三区视频| 丝袜亚洲另类丝袜在线| 欧美黑人性猛交xxx| 亚洲国产成人一区| 2019年精品视频自拍| www.亚洲视频.com| 中文字幕欧美区| 殴美一级特黄aaaaaa| 国产精品自拍偷拍| 日韩一级欧洲| 国产三级国产精品国产国在线观看| 精品久久久久久无|