久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

如何在Vue項(xiàng)目中添加接口監(jiān)聽遮罩

瀏覽:18日期:2022-10-09 09:04:09
一、業(yè)務(wù)背景

使用遮罩層來屏蔽用戶的非正常操作,是前端經(jīng)常使用的方式。但是在一些項(xiàng)目中,并沒有對遮罩層進(jìn)行統(tǒng)一管理,這就會造成如下的問題:(1)所有的業(yè)務(wù)組件都要引入遮罩層組件,也就是每個(gè).vue業(yè)務(wù)組件,都在template中引入了Mask組件。組件在項(xiàng)目的各個(gè)角落都存在,不利于管理,代碼極度冗余。(2)Mask組件都分散到業(yè)務(wù)的各個(gè)角落,所以控制是否顯示遮罩層的變量也散在業(yè)務(wù)組件中。比如使用maskShow來控制是否展示遮罩層時(shí),一個(gè)較為復(fù)雜的項(xiàng)目中會產(chǎn)生200+的maskShow變量。(3)maskShow過多且融入在業(yè)務(wù)中,同時(shí)maskShow的變量往往寫在接口的回調(diào)函數(shù)中,經(jīng)常會出現(xiàn)忘記改變變量的情況,造成遮罩層該顯示和不該顯示的邏輯出錯(cuò)。(4)項(xiàng)目經(jīng)常是在本地調(diào)試,而真實(shí)運(yùn)行卻又在線上,(3)中的問題在本地經(jīng)常無法驗(yàn)證出。因?yàn)檫@些問題經(jīng)常是在線上網(wǎng)絡(luò)環(huán)境較差的情況出現(xiàn)。如一個(gè)按鈕按完之后,需要等接口返回才能再次點(diǎn)擊,但是本地因?yàn)榉祷厮俣容^快,如果忘記添加遮罩層也不會有什么問題。但如果是網(wǎng)絡(luò)有問題的線上環(huán)境,就很容易出現(xiàn),且該問題一旦出現(xiàn),很難定位,大大影響工作效率。

二、問題分析

根據(jù)上述的背景,在實(shí)際項(xiàng)目中添加一個(gè)公共的遮罩層組件進(jìn)行管理,就變的十分有意義。經(jīng)過分析,具體需要解決如下問題:(1)遮罩層出現(xiàn)和關(guān)閉的時(shí)機(jī)。(2)Mask組件設(shè)計(jì)。(3)該組件如何優(yōu)雅的引入到項(xiàng)目中,不產(chǎn)生耦合。(4)如何在已有的項(xiàng)目中,漸進(jìn)式的更換原有的maskShow的方式,從而不造成大面積問題。(5)細(xì)節(jié)問題

三、組件設(shè)計(jì)1、遮罩層出現(xiàn)和關(guān)閉的時(shí)機(jī)

該問題根據(jù)不同業(yè)務(wù)需求決定,但是筆者認(rèn)為,大部分遮罩的出現(xiàn)和關(guān)閉主要取決于接口的請求和返回,一個(gè)接口在請求pending狀態(tài)下,顯示遮罩層,所有接口返回則關(guān)閉遮罩。本文主要解決的是接口請求遮罩問題,使用ts進(jìn)行編寫,且并不會羅列所有細(xì)節(jié)。

2、Mask組件設(shè)計(jì)

Mask組件為一個(gè)class,將細(xì)節(jié)屏蔽在class內(nèi)部。(1)class內(nèi)部最主要功能為添加和刪除遮罩層,傳輸?shù)漠?dāng)前請求接口的url。

class Mask { // 顯示遮罩層 appendMask(url: string): void{} // 刪除遮罩層 removeMaskl(url: string): void{}}

(2)添加遮罩層函數(shù),請求時(shí)調(diào)用該函數(shù),傳入當(dāng)前接口url。函數(shù)內(nèi)部維護(hù)一個(gè)監(jiān)聽對象,用以監(jiān)聽當(dāng)前是否存在pending狀態(tài)的請求。該對象的value為該接口pending狀態(tài)的數(shù)量。通過假設(shè)遮罩視圖組件已經(jīng)掛載到了Vue原型鏈上,如果沒有,則在組件上方引入即可。

// 監(jiān)聽對象數(shù)據(jù)類型定義interface HTTPDictInterface { [index: string]: number;}appendMask(url: string): void{ if(!this.monitorHTTPDict[url]){ this.monitorHTTPDict[url] = 0; } this.monitorHTTPDict[url] += 1; // 如果存在監(jiān)聽接口,則顯示遮罩層 if(!this.mask && Object.keys(this.monitorHTTPDict).length){ // 在body上添加遮罩層樣式,$Mask為遮罩層樣式組件 const Constructor = Vue.extend(Vue.prototype.$Mask); this.mask = new Constructor().$mount(); document.body.appendChild(this.mask.$el); }}

(3)刪除遮罩層函數(shù),每次請求結(jié)束之后都會調(diào)用該函數(shù),當(dāng)發(fā)現(xiàn)請求監(jiān)聽對象為空時(shí),刪除的遮罩層。如果沒有pending狀態(tài)的接口,刪除該對接的key。該對象為空且有遮罩層的情況下,刪除遮罩層。

removeMask(url: string): void{ // 成功返回后 if (this.monitorHTTPDict[monitorUrl]) { this.monitorHTTPDict[monitorUrl] -= 1; if (this.monitorHTTPDict[monitorUrl] <= 0) { delete this.monitorHTTPDict[monitorUrl]; } } // hasMask用以檢測頁面是否存在遮罩層標(biāo)簽元素 if (this.mask && this.hasMask() && !Object.keys(this.monitorHTTPDict).length) { document.body.removeChild(this.mask.$el); this.mask = null; } this.timer = null;}3、該組件如何優(yōu)雅的引入到項(xiàng)目中,不產(chǎn)生耦合。

使用該組件,需要在所有的請求發(fā)起之前調(diào)用appendMask函數(shù),所有的請求結(jié)束之后調(diào)用removeMask函數(shù)。這就有如下兩種調(diào)用方式。(1)使用axios等組件的回調(diào),完成函數(shù)調(diào)用。但是這種做法并沒有將Mask組件的代碼獨(dú)立于項(xiàng)目,它依賴于具體接口框架的API。

instance.interceptors.request.use((config) => { // 添加遮罩層 mask.appendMask(config.url); return config;});

(2)添加init函數(shù),直接在原生XMLHttpRequest對象中注入回調(diào)。更改原生XMLHttpRequest函數(shù),在事件’loadstart’和’loadend’中注入回調(diào),需要注意的是,loadstart接收的傳參中,并沒有當(dāng)前請求的url,所以還需要改寫open函數(shù),把open接收傳參的url掛載到新的xhr對象上。慎用該方法。因?yàn)楦脑鶤PI的方式十分危險(xiǎn),在很多編碼規(guī)范中是禁止的,如果所有人都對原生API進(jìn)行改寫,當(dāng)同時(shí)引入這些框架會產(chǎn)生沖突,造成無法意料的后果。

// 通過傳參來決定是否使用該方法init(){ if (this.autoMonitoring){ this.initRequestMonitor(); }}// 新的xmlhttprequest類型interface NewXhrInterface extends XMLHttpRequest{ requestUrl?: string}// 原生注入initRequestMonitor(): void{ let OldXHR = window.XMLHttpRequest; let maskClass: Mask = this; // @ts-ignore,編碼規(guī)范不允許修改XMLHttpRequest window.XMLHttpRequest = function () { let realXHR: NewXhrInterface = new OldXHR(); let oldOpen: Function = realXHR.open; realXHR.open = (...args: (string | boolean | undefined | null)[]): void => { realXHR.requestUrl = (args[1] as string); oldOpen.apply(realXHR, args); }; realXHR.addEventListener(`loadstart`, () => { const requestUrl: string = (realXHR.requestUrl as string); const url: string = maskClass.cleanBaseUrl(requestUrl); // 開啟遮罩 maskClass.appendMask(url); }); realXHR.addEventListener(`loadend`, () => { const responseURL: string = (realXHR as XMLHttpRequest).responseURL; const url: string = maskClass.cleanBaseUrl(responseURL); // 刪除遮罩 maskClass.removeMask(url); }); return realXHR; };}

(3)注入使用方式,直接調(diào)用init。這樣改項(xiàng)目的所有請求都會經(jīng)過Mask。

new Mask().init()4、如何在已有的項(xiàng)目中,漸進(jìn)式的更換原有的maskShow的方式,從而不造成大面積問題。

如果直接在全項(xiàng)目中使用,牽扯的面積就會變得很廣,會大面積的產(chǎn)生問題,反而得不償失。所以應(yīng)該采取一種漸進(jìn)更換的方式,做到平滑過渡。主要思路是通過配置頁面和黑名單的方式,來決定哪些頁面引入該組件,從而讓每個(gè)組員自己修改,畢竟頁面的負(fù)責(zé)人才是最了解當(dāng)前頁面業(yè)務(wù)的人。至于如何黑名單還是白名單,則由項(xiàng)目的具體業(yè)務(wù)決定。

// key需要監(jiān)聽的路由頁面,value為一個(gè)數(shù)組,數(shù)組中填寫的接口為黑名單,不需要監(jiān)聽的接口const PAGE_ONE = `/home`;const PAGE_TWO = `/login`;const HTTO_ONE = `xxx`export const maskUrlList = { [PAGE_ONE]: [HTTO_ONE], [PAGE_TWO]: [],};

appendMask方法過濾黑名單和沒有配置的頁面。maskUrlList為控制的對象,先檢查頁面路由,之后檢查是否存在黑名單。

appendMask(url: string): void{ // 獲取當(dāng)前頁面的path,獲取頁面路徑,根據(jù)hash和history模式進(jìn)行區(qū)分 const monitorPath: string = this.getMonitorPath(); // maskUrlList為配置項(xiàng),先檢查頁面路由,之后檢查是否存在黑名單 if (this.maskUrlList[monitorPath] && !this.maskUrlList[monitorPath].includes(url)) { if (this.monitorHTTPDict[url] === undefined) { this.monitorHTTPDict[url] = 0; } this.monitorHTTPDict[monitorUrl] += 1; } // 添加遮罩層 if (!this.mask && this.hasMonitorUrl()) { const Constructor = Vue.extend(Vue.prototype.$Mask); this.mask = new Constructor().$mount(); document.body.appendChild(this.mask.$el); }}5、細(xì)節(jié)問題

(1)渲染之后才關(guān)閉遮罩層,將實(shí)際刪除遮罩層邏輯放到定時(shí)器中,Vue的異步渲染采用的promise,所以關(guān)閉在如果放在渲染之后,需要放入setTimeout中。這里涉及到事件循環(huán)的知識。當(dāng)接口返回,如果需要渲染頁面,則會異步執(zhí)行一個(gè)Promise,Promise為微任務(wù),setTimeout為宏任務(wù),當(dāng)主線程執(zhí)行完畢后,會先執(zhí)行微任務(wù),之后才會執(zhí)行異步的宏任務(wù)setTimeout。

// 清理遮罩層if (!this.timer) { this.timer = window.setTimeout(() => { if (this.mask && this.hasMask() && !this.hasMonitorUrl()) { document.body.removeChild(this.mask.$el); this.mask = null; } this.timer = null; }, 0);}

(2)過濾接口的‘?’,以及hash模式下的‘#’,

// 獲取請求接口的urlgetMonitorUrl(url: string): string{ const urlIndex: number = url.indexOf(`?`); let monitorUrl: string = url; if (urlIndex !== -1) { monitorUrl = url.substring(0, urlIndex); } return monitorUrl;}// 獲取當(dāng)前路由pathgetMonitorPath(): string{ const path: string = this.mode === HASH_TYPE ? window.location.hash : window.location.pathname; let monitorPath: string = path; if (this.mode === HASH_TYPE) { monitorPath = monitorPath.substring(path.indexOf(`#`) + 1); } // 截圖路徑,刪除請求參數(shù) const hashIndex: number = monitorPath.indexOf(`?`); if (hashIndex !== -1) { monitorPath = monitorPath.substring(0, hashIndex); } return monitorPath;}

(3)接口過濾baseUrl。細(xì)心的話,會發(fā)現(xiàn)在使用axios的接口時(shí),自行決定是否帶入baseUrl,那是因?yàn)閍xios會在請求時(shí)進(jìn)行區(qū)分過濾。如果項(xiàng)目前期并沒有很好的定義使用方式的話,會有兩種不同使用axios的方式。那么,就需要對baseUrl進(jìn)行過濾。

// 去除baseUrlcleanBaseUrl(fullUrl: string): string { const baseUrlLength: number = this.baseUrl.length; return fullUrl.substring(baseUrlLength); }

(4)組件初始化,通過傳入params的方式,將對象實(shí)例化出來。

new Mask({ modeType, // hash或history autoMonitoring, // 是否更寫原生XMLHttpRequest對象 maskUrlList, // 配置引入的頁面和接口 baseUrl, // 當(dāng)前項(xiàng)目的baseUrl ...}).init()四、總結(jié)

本文介紹了統(tǒng)一遮罩層的背景、問題及設(shè)計(jì)方案。但并沒有將所有細(xì)節(jié)進(jìn)行列舉,這需要根據(jù)實(shí)際業(yè)務(wù)進(jìn)行選擇。但大體方案已經(jīng)列出:(1)遮罩層應(yīng)該在一些接口pending裝的時(shí)候顯示,所有接口返回后自動(dòng)關(guān)閉。這里的接口是指需要監(jiān)聽的接口(2)組件最重要的兩個(gè)函數(shù)為appendMask添加遮罩層和removeMask刪除遮罩層。(3)如果想Mask完全獨(dú)立,并不想依賴于第三方庫(axios)的回調(diào),可以直接對XMLHttpRequest進(jìn)行改寫,但這樣做風(fēng)險(xiǎn)很大,并不建議。(4)組件更換統(tǒng)一組員自己配置路由及監(jiān)聽接口的方式。這里的邏輯可以自行決定,如果要監(jiān)聽的接口多,可以采用黑名單,反之則白名單。(5)對渲染的優(yōu)化、請求帶參數(shù)、路由的模式進(jìn)行了優(yōu)化。

到此這篇關(guān)于如何在Vue項(xiàng)目中添加接口監(jiān)聽遮罩的文章就介紹到這了,更多相關(guān)Vue 接口監(jiān)聽遮罩內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 亚洲福利国产 | 久久久999精品视频 五月天婷婷在线视频 | av天天干| 日本欧美在线 | 在线99| 亚洲精选一区 | 激情图区在线观看 | 亚洲人人舔人人 | 午夜精品久久久久久久白皮肤 | 91亚洲福利| 精品久久一二三区 | 午夜影院| 欧美亚洲| 亚洲国产精品自拍 | 国产精品1 | 欧美亚洲另类丝袜综合网动图 | 欧美日韩一二区 | 在线观看国产小视频 | 91在线精品一区二区三区 | 久久精品无码一区二区日韩av | 亚洲一区| 俺要去97中文字幕 | 青青草视频网站 | 天天干天操 | 成人免费精品视频 | 亚洲成人毛片 | 成人二区 | 黄色一级大片在线免费看产 | 欧美一区免费 | 国语精品久久 | 日韩在线免费 | 日韩毛片免费在线观看 | 欧美精品99| 成人欧美一区二区三区在线观看 | 国产精品久久久久久久久免费软件 | 国产一区二区三区四区三区 | 国产精品一区三区 | 91免费观看国产 | 97国产精品 | 精品久久久久久 | 99久久这里只有精品 | 国产视频福利一区 | 国产精品久久久久久久久久东京 | h网站在线观看 | 日韩一区二区三区在线观看 | 精品视频一区二区三区四区 | 成人在线免费 | 国产精品国产三级国产aⅴ无密码 | 欧美a√| 欧美黄色片| 性色网站| 九色一区二区 | 狠狠躁日日躁夜夜躁东南亚 | 久久视频在线 | 亚洲一区中文字幕 | 天堂中文字幕 | 操人网址 | 日日久 | 成人亚洲 | 一区二区福利 | 国产精选一区二区三区 | 在线观看国产视频 | 欧美精品成人一区二区在线 | 国产欧美一区二区精品婷 | av在线中文| 久久久国产视频 | 国产电影一区二区 | 国产精品丝袜一区二区 | 黄色成人在线 | 一二三区在线 | 欧美精品一区二区三区一线天视频 | 在线精品国产一区二区三区 | 久久在线播放 | 成人av网站在线 | 91精品国产美女在线观看 | 久久免费视频观看 | 麻豆精品久久 | 亚洲精品福利视频 | 国产日韩中文字幕 | 欧美一区二区三区在线观看视频 | 激情.com| 范冰冰一级做a爰片久久毛片 | 久久美女视频 | 国产精品乱码一区二区三区 | 蜜桃av一区二区三区 | 亚洲九九 | 久久综合久久综合久久 | 国产精品一区二区无线 | 伊人激情综合网 | 福利在线看 | 国产精久久久久 | 国产精品一区二区视频 | 狠狠狠色丁香婷婷综合久久五月 | 99国产视频 | www.国产.com | 久久精品综合 | 欧美日韩国产欧美 | 国产中文字幕在线 | 亚洲视频1 | 少妇色欲网| 91免费看 | 精品国产髙清在线看国产毛片 | 久久国产精品99久久久久久老狼 | 日韩在线不卡 | 亚洲精品午夜aaa久久久 | 成人一区二区在线 | 欧美大片一区二区 | 午夜影院在线观看 | 精精国产xxxx视频在线 | 国产精品久久久久久久久久久久 | 日韩性色视频 | av在线大全 | 91高清在线 | 国产精品二区三区 | 中文字幕在线观看精品视频 | 国产欧美日韩在线 | 人人干人人爱 | 久久久久久久91 | 一区二区三区久久久久久 | 每日更新av | 色呦呦网站在线观看 | 国产视频精品在线 | 在线一区观看 | 欧美日韩一区二区在线 | 日韩免费视频 | 国产精品1区2区 | 精品久久久久久久久久久 | 夫妻午夜影院 | 99精品欧美一区二区三区综合在线 | 国偷自产av一区二区三区 | 日本三级在线网站 | 国产在线一区二区三区 | 亚洲国产高清在线 | www操com | 97国产精品 | 91在线精品一区二区 | 三级成人片 | 色综合一区 | 久久一区二区三区四区 | 伊人网影院 | av免费观看网页 | 国产精品久久一区二区三区 | 日韩视频一区二区三区在线观看 | 久久综合久久综合久久 | 亚洲一区在线视频 | 国产精品日韩欧美一区二区三区 | 亚洲成人伦理 | www.一区二区| 91亚洲在线 | 精品一区二区国产 | 天堂资源在线 | 一区视频| 日韩一区二区三区在线视频 | 国产羞羞视频免费在线观看 | 欧美三级电影在线观看 | 综合网激情五月 | 亚洲午夜精品 | 91视频在线看 | 国产亚洲精品久久久久久豆腐 | 99re视频精品| 国产美女久久 | 91精品视频在线播放 | 成人免费视频网 | 久久久久久久久久影院 | 国产精品久久国产精品 | 国产精品一区久久久久 | 亚洲午夜视频在线观看 | 久久国产电影 | 81精品国产乱码久久久久久 | 天堂av一区二区 | 国产午夜精品一区二区三区免费 | av一区在线观看 | 国产精品99视频 | 激情一区二区三区 | 亚洲视频一区二区三区四区 | 欧美激情综合五月色丁香小说 | 91看片淫黄大片一级在线观看 | 日本午夜影院 | 久久四色 | 精品久久久久久国产 | 亚洲三级在线观看 | 免费午夜视频 | 精品免费国产一区二区三区 | 在线免费观看色视频 | 日韩精品一区二区三区视频播放 | 国产精品久久免费看 | 欧美在线综合 | 亚洲精品片| 国产成人av电影 | 美女久久 | 久久久精品区 | 欧美日韩一区二区三区在线观看 | 97av视频在线观看 | 91在线精品一区二区 | 日本久久网 | 综合久久久久久久 | xnxx 美女19 | 91精品视频在线播放 | 羞羞视频在线免费观看 | 成年人在线视频 | 精品国产一区二区三区高潮视 | 久久在线 | 国产一区 | 在线免费色视频 | 日韩综合色 | 91,看片| 91av免费在线观看 | 国产美女网站 | 欧美日韩一区二区三区四区 | 在线成人av观看 | 91精品久久久久久久久 | 99精品久久久 | 另类五月| 亚洲免费在线播放 | 国产精品伊人影院 | 国产成人精品一区二区三区四区 | 亚洲天天操 | 国产精品久久久精品 | 久久久久亚洲精品 | 久久久久久久久国产精品 | 国产97人人超碰caoprom | 亚洲人成人一区二区在线观看 | 色视频在线免费观看 | 一区二区不卡 | 午夜视频| 亚洲 欧美 另类 综合 偷拍 | 国产一区二区三区av在线 | 亚洲国产精品va在线看黑人 | 日韩亚洲视频 | 成人亚洲一区 | 成人欧美| 精品国产精品三级精品av网址 | 欧美日韩视频网站 | 亚洲一区二区三区四区五区中文 | 欧美在线| 精品欧美乱码久久久久久1区2区 | 高清国产一区二区三区四区五区 | 亚洲最大免费视频 | 国产精品18| 国产第一亚洲 | 日韩欧美一区二区视频 | 一区二区三区四区在线 | 91精品国产综合久久久久久丝袜 | 欧美亚洲视频在线观看 | 7777久久 | 久久久精品免费视频 | 日韩精品免费在线视频 | 精品久久久久久国产 | 91精品国产日韩91久久久久久 | 一区二区三区在线观看国产 | 久久www免费人成看片高清 | 国产精品久久久久久 | 一级a性色生活片久久毛片波多野 | 不卡二区| 国产99久久久精品视频 | 高清av网站| 日韩精品视频在线 | 午夜小视频免费 | 欧美一区二区三 | 91色在线观看 | 国产噜噜噜噜噜久久久久久久久 | 国产精品69毛片高清亚洲 | 美女福利视频网站 | 91精品综合久久久久久五月天 | 91免费版在线观看 | 密室大逃脱第六季大神版在线观看 | 欧美日韩国产精品 | 日韩一区二区在线观看 | 黄色影视网址 | 国产精品视频免费 | 精品久久久久av | 日本久久网站 | 亚洲精品一区二区三区精华液 | 国产婷婷在线观看 | 成人精品一区二区三区 | 久久精品国产一区二区三区不卡 | 日韩亚洲视频 | 久久精品亚洲精品国产欧美 | 亚洲一区二区av | 五月天婷婷免费视频 | 精品一区二区三区免费 | 久久精品伊人 | 欧美激情精品久久久久久变态 | 国产精品黄网站在线观看 | 久久精品国产99国产 | 97av在线| 欧美寡妇偷汉性猛交 | 国产精品久久精品久久 | 国产精品久久久久久久久久东京 | 一区二区三区四区精品 | 日韩免费一区二区 | 亚洲国产二区 | 亚洲电影免费 | 亚洲网站在线播放 | 午夜精品福利网 | 精品一区二区久久 | 亚洲区视频 | 亚洲天堂一区 | 精品96久久久久久中文字幕无 | 成人av影片在线观看 | 日韩国产一区二区 | 九九热这里只有精品在线观看 | 国产91久久精品 | 成年人在线观看视频 | 一区二区三区在线播放 | 99爱免费观看 | 日韩午夜 | 欧美一区二区三区在线观看视频 | 欧美日韩三级在线 | 一区二区三区在线视频播放 | 久久久天堂 | 中文字幕av一区二区 | 香港黄色录像片 | av男人天堂网| 黄色毛片在线观看 | 成人一区二区电影 | 国产高清在线a视频大全 | 国产成人精品999在线观看 | 国产一区91 | 日韩视频免费在线 | 一本一本久久a久久精品综合妖精 | 精品在线一区二区 | 成av在线| 成人在线播放网站 | 丁香久久 | 91亚洲一区 | 亚洲青涩在线 | 国产精品久久久久久中文字 | 亚洲毛片网 | 国产精品毛片一区视频播 | 天天操网址 | 激情六月婷| 国产香蕉视频在线播放 | 国产高清在线精品一区二区三区 | 老汉色影院 | 国产精品一区一区三区 | 国产成人精品一区二区三区四区 | 久久精品1区 | 午夜成人在线视频 | 日韩一区二区在线观看视频 | 日韩一区三区 | 99国产视频 | 久在线| 在线观看免费毛片视频 | 免费的日本网站 | 亚洲成人福利在线观看 | 久久久资源 | 天堂国产 | 久草视频首页 | 欧美激情第二页 | 成人国产精品视频 | 欧美福利网| 亚洲人在线播放 | 久草视频在线播放 | 国产乱淫av片 | 日韩在线欧美 | www..99re| 日本免费www | 日韩精品一区二区三区在线观看 | 97在线观看 | 一级毛片免费 | a级黄色毛片免费观看 | 成人免费crm在线观看 | 日日摸天天爽天天爽视频 | av入口| 亚洲一区二区三区爽爽爽爽爽 | 91精品久久久久久久91蜜桃 | 国产在线视频xxx | 狠狠操综合网 | 亚洲精品www久久久久久 | 九九九九九九精品任你躁 | 午夜草民福利电影 | 成人精品网 | 精品久久久久久亚洲综合网 | 国产日韩91 | 中文字幕一区二区三区四区五区 | 久久视频免费 | 国产福利电影一区 | 国产精品久久综合 | 九色国产| 亚洲欧美综合一区 | 成人一级黄色大片 | 欧美6一10sex性hd| 国产电影一区二区在线观看 | 夜夜夜操操操 | 国产91对白叫床清晰播放 | 一区二区日韩精品 | 亚洲三级视频 | 欧美视频一区二区三区在线观看 | 日韩视频在线观看一区二区 | 中文字幕日韩欧美一区二区三区 | 中文字幕亚洲在线观看 | 九九porny88av| 亚洲精品夜夜夜 | 337p日本粉嫩噜噜噜 | 六月婷操 | 久久免费精品视频 | 国产h片在线观看 | 一区在线观看 | 中文字幕在线看第二 | 亚洲综合中文网 | 久久人人爽人人爽 | 欧美成人精品一区二区三区在线看 | av在线免费观看网站 | 日韩欧美国产成人一区二区 | 日韩三区在线 | 成人高清视频在线 | 欧产日产国产一区 | 精品亚洲国产成av人片传媒 | 一区二区三区免费av | 亚洲成av人片一区二区三区 | 国产99久久| 偷偷干夜夜拍 | 欧美高清视频一区二区三区 | 中文字幕日韩一区 | 亚洲一区免费视频 | 日一区二区 | 欧美一区久久 | 日韩欧美综合在线 | 午夜网址 | 一色视频| 美女天天操 | 国产精品一区在线观看 | 91久久久久久久久 | 日韩久久久一区二区 | 亚洲a视频| 九九热视频在线 | 亚洲国产成人久久一区二区三区 | 久久精品伊人 | 一区二区三区小视频 | 一区二区影视 | 极品女神高潮呻吟av久久 | 色综合久久网 | 欧美一区在线看 | 麻豆精品久久 | 在线视频a| 欧美老妇交乱视频 | 爱免费视频 | 亚洲a在线观看 | 小情侣高清国产在线播放 | 91精品欧美久久久久久久 | 日韩精品av一区二区三区 | 一区二区久久 | 国产视频自拍一区 | 性色视频在线观看 | 性色在线视频 | 一本岛在线视频 | 久久九九国产精品 | 在线观看日韩 | 综合久久久久 | 人人爱夜夜爽日日视频 | av在线一区二区三区 | 99re在线视频 | 一级做a爰片性色毛片 | 国产免费天天看高清影视在线 | 欧美日韩一区二区视频在线观看 | 午夜国产一级 | 欧美aⅴ | 中文字幕高清在线 | 精品96久久久久久中文字幕无 | 欧美一区国产一区 | 欧美精品1 | 久久免费在线观看 | 欧美国产三级 | 天堂av一区 | 国产精品a久久久久 | 综合色爱 | 久久黄视频 | 成人精品网站在线观看 | 玖玖免费 | 日韩精品免费在线视频 | 国产一二三在线 | 中文字幕在线电影 | 亚洲一区免费在线观看 | 波多野结衣一区二区三区四区 | 久久精品成人免费视频 | 亚洲欧美在线免费观看 | 中文字幕在线观看第一页 | 亚洲国产青草 | 欧美日韩在线一区二区 | 国产高清中文字幕 | 欧美综合久久久 | se在线播放 | 久久久精品国产 | 黄色永久网站 | 不用播放器的免费av | 国产精品久久久久久久久久久久久久 | 久久激情视频 | 我看一级毛片 | 亚洲成人精品在线观看 | 特级a做爰全过程片 | 午夜精品影院 | 亚洲毛片在线观看 | 成年人福利 | 天天久 | 一区二区三区免费 | 成人在线视频免费观看 | 三级黄色视频毛片 | 一区二区在线电影 | 日韩毛片免费看 | 久久亚洲欧美日韩精品专区 | 日韩中文在线视频 | 黄毛片网站| 精品99久久久久久 | 久久综合久久久 | 国产精品美女在线观看 | 国产 欧美 日韩 一区 | 日韩欧美一区二区三区四区 | 黄色一级毛片 | www国产亚洲精品久久网站 | av电影手机版 | 日本不卡在线 | 亚洲精品成人av | 黄色二区| 国产成人91 | 精品国产一区二区三区成人影院 | 国产亚洲精品精品国产亚洲综合 | 伊人免费在线观看高清版 | 成人小视频在线观看 | 精品国产一区二区三区日日嗨 | 91国偷自产一区二区三区亲奶 | 99久久婷婷国产综合精品电影 | 欧美成人精品激情在线观看 | 精品久久久久久久久久久久包黑料 | 欧美激情小视频 | 亚洲精品久久久久久一区二区 | 日韩精品一区二区三区第95 | 一级a性色生活片久久毛片明星 | 国产精品久久久久久久 | 久久网一区二区三区 | 国产成人精品久久二区二区91 | 国产一区二区三区四区在线观看 | 激情小视频网站 | 国产精品美女久久久久久久久久久 | 成年人福利 | 在线播放一区二区三区 | av一区二区在线观看 | 亚洲综合色视频在线观看 | 亚洲高清视频在线观看 | 高清国产一区二区三区四区五区 | 国产h视频在线观看 | 国产精品18 | 欧美第一视频 | 午夜tv免费观看 | 99精品福利视频 | 欧美一区二区三区视频 | 91麻豆精品国产91久久久久久久久 | 台湾av在线 | 国产精品亚洲成在人线 | av大片| 在线小视频 | 毛片网络 | 久久久精品国产 | 久久久久久1 | 色婷婷亚洲| 一区二区三区回区在观看免费视频 | 精品国产乱码简爱久久久久久 | 俺要去97中文字幕 | 91精品视频在线播放 | 日韩视频二区 | 久久久久久久久久久久久久久久久久久 | 欧洲成人在线观看 | 日本电影网址 | 日韩高清在线一区 | 91精品久久久久久久91蜜桃 | www,四虎| 免费观看成人性生生活片 | 一级毛片免费看 | 久久久精品网站 | 国久久久 | 国产精品亚洲一区二区三区在线 | 久久久精品电影 | 日韩精品一区二区三区在线观看 | 四虎av成人 | 亚洲成人三级 | 亚洲精品一二三区 | 亚洲视频在线观看 | 91精品国产综合久久婷婷香蕉 | 免费毛片网 | 国产亚洲精品久久久优势 | 四虎影视网址 | 中文字幕免费在线观看视频 | 国产日韩视频在线观看 | 国产精品对白一区二区三区 | 91在线播| 欧美精品一区二区三区一线天视频 | 亚洲 欧美 日韩 精品 | av免费在线观看网站 | 国产乱肥老妇国产一区二 | 国产高清视频 | 国产精品对白一区二区三区 | 99精品电影| 欧美久热 | 伊人二区| 在线色网站 | 国产一区免费在线观看 | 日韩精品999 | www.久草| 国产精品夜夜春夜夜爽久久电影 | 欧美卡一卡二 | 亚洲h| 精品亚洲一区二区三区 | 国产精品成人国产乱一区 | 日韩不卡av| 91麻豆产精品久久久久久 | 91精品视频在线播放 | 91精品国产91久久久久久最新 | 亚洲日本中文 | 狠狠天天| chengrenzaixian| 久久久久综合狠狠综合日本高清 | 日本福利在线观看 | 玖玖免费| 国产精品久久九九 | 日本男人的天堂 |