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

一文徹底搞懂前端監(jiān)控

安全 應(yīng)用安全
前端監(jiān)控的第一個(gè)步驟就是數(shù)據(jù)采集,采集的信息包含環(huán)境信息、性能信息、異常信息、業(yè)務(wù)信息。

[[355878]]

一、前端監(jiān)控現(xiàn)狀

近年來(lái),前端監(jiān)控是越來(lái)越火,目前已經(jīng)有很多成熟的產(chǎn)品供我們選擇使用,如下圖所示

有這么多監(jiān)控平臺(tái),那為什么還要學(xué)習(xí)自研前端監(jiān)控?

  • 一方面人家是要錢的
  • 另一方面自己的項(xiàng)目需要定制化的功能。

二、前端監(jiān)控的目的

  1. 提升用戶體驗(yàn)
  2. 更快的發(fā)現(xiàn)發(fā)現(xiàn)異常、定位異常、解決異常
  3. 了解業(yè)務(wù)數(shù)據(jù),指導(dǎo)產(chǎn)品升級(jí)——數(shù)據(jù)驅(qū)動(dòng)的思想

三、前端監(jiān)控的流程

3.1 采集

前端監(jiān)控的第一個(gè)步驟就是數(shù)據(jù)采集,采集的信息包含環(huán)境信息、性能信息、異常信息、業(yè)務(wù)信息。

3.1.1 環(huán)境信息

環(huán)境信息是每個(gè)監(jiān)控系統(tǒng)必備的內(nèi)容,畢竟排查問題的時(shí)候需要知道來(lái)自哪個(gè)頁(yè)面、瀏覽器是誰(shuí)、操作用戶是誰(shuí)……,這樣才能快速定位問題,解決問題。一般這些常見的環(huán)境信息主要包含:

  • url:正在監(jiān)控的頁(yè)面,該頁(yè)面可能會(huì)出現(xiàn)性能、異常問題。獲取方式為:

window.location.href

  • ua:訪問該頁(yè)面時(shí)該用戶的userAgent信息,包含操作系統(tǒng)和瀏覽器的類型、版本等。獲取方式為:

window.navigator.userAgent

  • token:記錄當(dāng)前用戶是誰(shuí)。通過記錄該用戶是誰(shuí)。

一方面方便將該用戶的所有監(jiān)控信息建立聯(lián)系,方便數(shù)據(jù)分析;

另一方面通過該標(biāo)識(shí)可以查看該用戶的所有操作,方便復(fù)現(xiàn)問題。

3.1.2 性能信息

頁(yè)面的性能直接影響了用戶留存率,,Google DoubleClick 研究表明:如果一個(gè)移動(dòng)端頁(yè)面加載時(shí)長(zhǎng)超過 3 秒,用戶就會(huì)放棄而離開。BBC 發(fā)現(xiàn)網(wǎng)頁(yè)加載時(shí)長(zhǎng)每增加 1 秒,用戶就會(huì)流失 10%。,Google DoubleClick 研究表明:如果一個(gè)移動(dòng)端頁(yè)面加載時(shí)長(zhǎng)超過 3 秒,用戶就會(huì)放棄而離開。BBC 發(fā)現(xiàn)網(wǎng)頁(yè)加載時(shí)長(zhǎng)每增加 1 秒,用戶就會(huì)流失 10%。所以我們的追求就是提高頁(yè)面的性能,為了提高性能需要監(jiān)控哪些指標(biāo)呢?

3.1.2.1 指標(biāo)分類

指標(biāo)有很多,我總結(jié)為以下兩個(gè)方面:網(wǎng)絡(luò)層面和頁(yè)面展示層面。

一、網(wǎng)絡(luò)層面

從網(wǎng)絡(luò)層面來(lái)看涉及的指標(biāo)有:重定向耗時(shí)、DNS解析耗時(shí)、TCP連接耗時(shí)、SSL耗時(shí)、TTFB網(wǎng)絡(luò)請(qǐng)求耗時(shí)、數(shù)據(jù)傳輸耗時(shí)、資源加載耗時(shí)……,各個(gè)指標(biāo)的解釋如下表所示:

 

指標(biāo) 解釋
重定向耗時(shí) 重定向所耗費(fèi)的時(shí)間
DNS解析耗時(shí) 瀏覽器輸入網(wǎng)址后首先會(huì)進(jìn)行DNS解析,其可以對(duì)服務(wù)器是否工作作出反饋
TCP連接耗時(shí) 指建立連接過程的耗時(shí)
SSL連接耗時(shí) 指數(shù)據(jù)安全性、完整性建立耗時(shí)
TTFB 網(wǎng)絡(luò)請(qǐng)求耗時(shí) 表示瀏覽器接收第一個(gè)字節(jié)的時(shí)間
數(shù)據(jù)傳輸耗時(shí) 瀏覽器接收內(nèi)容所耗費(fèi)的時(shí)間
資源加載耗時(shí) DOM構(gòu)建完畢后到頁(yè)面加載完畢這段時(shí)間

二、頁(yè)面展示層面

頁(yè)面展示層面的指標(biāo)是針對(duì)用戶體驗(yàn)提出的幾個(gè)指標(biāo),包含F(xiàn)P、FCP、LCP、FMP、DCL、L等,這幾個(gè)指標(biāo)其實(shí)就是chrome瀏覽器中performance模塊的指標(biāo)(如圖所示)。

各個(gè)指標(biāo)的解釋如下表所示。

 

指標(biāo) 解釋
FP(First Paint) 首次繪制,標(biāo)記瀏覽器渲染任何在視覺上不同于導(dǎo)航前屏幕內(nèi)容之內(nèi)容的時(shí)間點(diǎn).
FCP(First Contentful Paint) 首次內(nèi)容繪制,標(biāo)記瀏覽器渲染來(lái)自 DOM 第一位內(nèi)容的時(shí)間點(diǎn),該內(nèi)容可能是文本、圖像、SVG 甚至 元素.
LCP(Largest Contentful Paint) 最大內(nèi)容渲染,表示可視區(qū)“內(nèi)容”最大的可見元素開始出現(xiàn)在屏幕上的時(shí)間點(diǎn)。
FMP(First Meaningful Paint) 首次有效繪制,表示頁(yè)面的“主要內(nèi)容”開始出現(xiàn)在屏幕上的時(shí)間點(diǎn)。它是我們測(cè)量用戶加載體驗(yàn)的主要指標(biāo)。
DCL(DomContentLoaded) 當(dāng) HTML 文檔被完全加載和解析完成之后,DOMContentLoaded 事件被觸發(fā),無(wú)需等待樣式表、圖像和子框架的完成加載.
L(onLoad) 當(dāng)依賴的資源全部加載完畢之后才會(huì)觸發(fā)
TTI(Time to Interactive) 可交互時(shí)間,用于標(biāo)記應(yīng)用已進(jìn)入視覺渲染并能可靠響應(yīng)用戶輸入的時(shí)間點(diǎn)
FID(First Input Delay) 首次輸入延遲,用戶首次和頁(yè)面交互(單擊鏈接、點(diǎn)擊按鈕等)到頁(yè)面響應(yīng)交互的時(shí)間

3.1.2.2 指標(biāo)求解

上述這么多指標(biāo)該怎么獲取呢?瀏覽器給我們留了相應(yīng)的接口——神奇的window.performance,通過該接口可以獲取一些列與性能相關(guān)的參數(shù),下面以https://baidu.com 為例來(lái)看一下與這些指標(biāo)相關(guān)的參數(shù):

window.performance中的timing屬性中的內(nèi)容不就是為了求解上述指標(biāo)所需要的值嗎?看著上面的屬性值再對(duì)應(yīng)下面的performance訪問流程圖,整個(gè)過程是不是一目了然。

有了上面的值我們就一起求解上述的指標(biāo):

一、網(wǎng)絡(luò)層面

 

指標(biāo) 計(jì)算
重定向耗時(shí) redirectEnd - redirectStart
DNS解析耗時(shí) domainLookupEnd - domainLookupStart
TCP連接耗時(shí) connectEnd - connectStart
SSL連接耗時(shí) connectEnd - secureConnectionStart
TTFB 網(wǎng)絡(luò)請(qǐng)求耗時(shí) responseStart - requestStart
數(shù)據(jù)傳輸耗時(shí) responseEnd - responseStart
資源加載耗時(shí) loadEventStart - domContentLoadedEventEnd

二、頁(yè)面展示層面

Google工程師一直在推動(dòng)以用戶為中心的性能指標(biāo),所以頁(yè)面展示層面的變化較大,求解方式稍有不同:

1.FP和FCP

通過window.performance.getEntriesByType(‘paint’)的方式獲取

 

  1. const paint = window.performance.getEntriesByType('paint'); 
  2. const FP = paint[0].startTime, 
  3. const FCP = paint[1].startTime, 

2.LCP

 

  1. function getLCP() { 
  2.     // 增加一個(gè)性能條目的觀察者 
  3.     new PerformanceObserver((entryList, observer) => { 
  4.         let entries = entryList.getEntries(); 
  5.         const lastEntry = entries[entries.length - 1]; 
  6.         observer.disconnect(); 
  7.         console.log('LCP', lastEntry.renderTime || lastEntry.loadTime); 
  8.     }).observe({entryTypes: ['largest-contentful-paint']}); 

3.FMP

 

  1. function getFMP() { 
  2.     let FMP; 
  3.     new PerformanceObserver((entryList, observer) => { 
  4.         let entries = entryList.getEntries(); 
  5.         observer.disconnect(); 
  6.         console.log('FMP', entries); 
  7.     }).observe({entryTypes: ['element']}); 

4.DCL

  1. domContentLoadEventEnd – fetchStart 

5.L

  1. loadEventStart – fetchStart 

6.TTI

  1. domInteractive – fetchStart 

7.FID

 

  1. function getFID() { 
  2.     new PerformanceObserver((entryList, observer) => { 
  3.         let firstInput = entryList.getEntries()[0]; 
  4.         if (firstInput) { 
  5.             const FID = firstInput.processingStart - firstInput.startTime; 
  6.             console.log('FID', FID); 
  7.         } 
  8.         observer.disconnect(); 
  9.     }).observe({type: 'first-input', buffered: true}); 

3.1.3 異常信息

對(duì)于網(wǎng)站來(lái)說(shuō),異常信息是最致命、最影響用戶體驗(yàn)的問題,需要重點(diǎn)監(jiān)控。對(duì)于異常信息可以分為兩類:運(yùn)行時(shí)錯(cuò)誤、接口錯(cuò)誤。下面就分別來(lái)嘮一嘮這兩類錯(cuò)誤。

一、運(yùn)行時(shí)錯(cuò)誤

當(dāng)JavaScript運(yùn)行時(shí)有可能會(huì)發(fā)生錯(cuò)誤,可歸類為七種:語(yǔ)法錯(cuò)誤、類型錯(cuò)誤、范圍錯(cuò)誤、引用錯(cuò)誤、eval錯(cuò)誤、URL錯(cuò)誤、資源加載錯(cuò)誤。為了捕獲代碼錯(cuò)誤,需要考慮兩類場(chǎng)景:非Promise場(chǎng)景和Promise場(chǎng)景,因?yàn)閮煞N場(chǎng)景捕獲錯(cuò)誤的策略不同。

1.非Promise場(chǎng)景

非Promise場(chǎng)景可通過監(jiān)聽error事件來(lái)捕獲錯(cuò)誤。對(duì)于error事件捕獲的錯(cuò)誤分為兩類:資源錯(cuò)誤和代碼錯(cuò)誤。資源錯(cuò)誤指的就是js、css、img等未加載,該錯(cuò)誤只能在捕獲階段獲取到,且為資源錯(cuò)誤時(shí)event.target.localName存在值(用此區(qū)分資源錯(cuò)誤與代碼錯(cuò)誤);代碼錯(cuò)誤指的就是語(yǔ)法錯(cuò)誤、類型錯(cuò)誤等這一類錯(cuò)誤,可以獲取代碼錯(cuò)誤的信息、堆棧等,用于排查錯(cuò)誤。

 

  1. export function listenerError() { 
  2.     window.addEventListener('error', (event) => { 
  3.         if (event.target.localName) { 
  4.             console.log('這是資源錯(cuò)誤', event); 
  5.         } 
  6.         else { 
  7.             console.log('這是代碼錯(cuò)誤', event); 
  8.         } 
  9.     }, true

2.Promise場(chǎng)景

Promise場(chǎng)景的處理方式有所不同,當(dāng)Promise被reject且沒有reject處理器的時(shí)候,會(huì)觸發(fā)unhandlerejection事件,所以通過監(jiān)聽unhandlerejection的事件來(lái)捕獲錯(cuò)誤。

 

  1. export function listenerPromiseError() { 
  2.     window.addEventListener('unhandledrejection', (event) => { 
  3.         console.log('這是Promise場(chǎng)景中錯(cuò)誤', event); 
  4.     }) 

二、接口錯(cuò)誤

對(duì)于瀏覽器來(lái)說(shuō),所有的接口均是基于XHR和Fetch實(shí)現(xiàn)的,為了捕獲接口中的錯(cuò)誤,可以通過重寫該方法,然后通過接口返回的信息來(lái)判斷當(dāng)前接口的狀況,下面以XHR為例來(lái)展示封裝過程。

 

  1. function newXHR() { 
  2.     const XMLHttpRequest = window.XMLHttpRequest; 
  3.     const oldXHROpen = XMLHttpRequest.prototype.open
  4.     XMLHttpRequest.prototype.open = (method, url, async) => { 
  5.         // 做一些自己的數(shù)據(jù)上報(bào)操作 
  6.         return oldXHROpen.apply(this, arguments); 
  7.     } 
  8.  
  9.     const oldXHRSend = XMLHttpRequest.prototype.send; 
  10.     XMLHttpRequest.prototype.send = (body) => { 
  11.         // 做一些自己的數(shù)據(jù)上報(bào)操作 
  12.         return oldXHRSend.apply(this, arguments); 
  13.     } 

3.1.4 業(yè)務(wù)信息

每個(gè)產(chǎn)品都會(huì)有自己的業(yè)務(wù)信息,例如用戶在線時(shí)長(zhǎng)、pv、uv、用戶分布等,通過獲取這些業(yè)務(wù)信息才能更加清楚的了解目前產(chǎn)品的狀況,以便產(chǎn)品經(jīng)理更好的去規(guī)劃產(chǎn)品的未來(lái)方向。由于每個(gè)產(chǎn)品業(yè)務(wù)信息多種多樣,小伙伴本可以按照自己的需求進(jìn)行撰寫代碼,此處我就不再贅述。

3.2上報(bào)

對(duì)于上報(bào)的方式無(wú)外乎兩種:一種是Ajax的方式上報(bào);另一種是通過Image的形式進(jìn)行上報(bào)。目前很多大廠采用的上報(bào)方式均是通過一個(gè)1*1像素的的gif圖片進(jìn)行上報(bào),既然人家都采用該種策略,那我們就來(lái)嘮一嘮下面兩個(gè)問題。

  • 為什么采用Image的方式上報(bào)?

沒有跨域問題。因?yàn)閿?shù)據(jù)服務(wù)器和后端服務(wù)器大概率是不同的域名,若采用Ajax的方式進(jìn)行處理還要處理跨域問題,否則數(shù)據(jù)會(huì)被瀏覽器攔截。

不會(huì)阻塞頁(yè)面加載,只需new Image對(duì)象即可。

  • 圖片類型很多,為什么采用gif這種格式進(jìn)行上報(bào)?

其實(shí)歸結(jié)為一個(gè)字——小。對(duì)于1*1px的圖片,BMP結(jié)構(gòu)的文件需要74字節(jié),PNG結(jié)構(gòu)的文件需要67字節(jié),GIF結(jié)構(gòu)的文件只需要43字節(jié)。同樣的響應(yīng),GIF可以比BMP節(jié)約41%的流量,比PNG節(jié)約35%的流量,所以選擇gif進(jìn)行上報(bào)。

3.3分析

日志上報(bào)之后需要進(jìn)行清洗,獲取自己所需要內(nèi)容,并將分析內(nèi)容進(jìn)行存儲(chǔ)。根據(jù)數(shù)據(jù)量的大小可分為兩種方式:?jiǎn)螜C(jī)和集群。

一、單機(jī)

訪問量小、日志少的網(wǎng)站可以采用單機(jī)的方式對(duì)數(shù)據(jù)進(jìn)行分析,例如用node讀取日志文件,然后通過日志文件中獲取所需要的信息,最終將處理的信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。

二、集群

很多產(chǎn)品的訪問量很大,日志很多,此時(shí)就需要利用Hadoop進(jìn)行分布式處理,獲取最終處理結(jié)果,其處理流程圖如下所示:

根據(jù)自己的日志量級(jí)決定自己的分析方式,合適的就是最好的,不用一味追求最優(yōu)的、最先進(jìn)的處理方式。

3.4報(bào)警

當(dāng)異常類型超多一定閾值之后需要進(jìn)行報(bào)警通知,讓對(duì)應(yīng)的工作人員去處理問題,及時(shí)止損。根據(jù)報(bào)警的級(jí)別不同,可以選擇不同的報(bào)警方式。

  1. 郵件——普通報(bào)警
  2. 短信——嚴(yán)重報(bào)警,已影響部分業(yè)務(wù)
  3. 電話——特別嚴(yán)重,例如系統(tǒng)已宕機(jī)

本文轉(zhuǎn)載自微信公眾號(hào)「 執(zhí)鳶者」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系 執(zhí)鳶者公眾號(hào)。

 

 

責(zé)任編輯:武曉燕 來(lái)源: 執(zhí)鳶者
相關(guān)推薦

2022-06-07 10:13:22

前端沙箱對(duì)象

2023-11-08 18:35:29

得物前端監(jiān)控

2020-03-18 14:00:47

MySQL分區(qū)數(shù)據(jù)庫(kù)

2021-06-30 08:45:02

內(nèi)存管理面試

2021-07-08 10:08:03

DvaJS前端Dva

2019-11-06 17:30:57

cookiesessionWeb

2024-08-08 14:57:32

2022-04-11 10:56:43

線程安全

2023-04-12 08:38:44

函數(shù)參數(shù)Context

2021-08-05 06:54:05

觀察者訂閱設(shè)計(jì)

2020-12-18 09:36:01

JSONP跨域面試官

2023-11-23 06:50:08

括號(hào)

2024-04-12 12:19:08

語(yǔ)言模型AI

2022-03-24 08:51:48

Redis互聯(lián)網(wǎng)NoSQL

2021-01-06 13:52:19

zookeeper開源分布式

2021-03-29 11:18:06

前端開發(fā)技術(shù)

2021-10-20 08:49:30

Vuexvue.js狀態(tài)管理模式

2023-09-08 08:20:46

ThreadLoca多線程工具

2021-03-22 10:05:59

netstat命令Linux

2023-09-15 12:00:01

API應(yīng)用程序接口
點(diǎn)贊
收藏

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

午夜精品久久久久久久蜜桃| 欧美 变态 另类 人妖| 国产午夜精品久久久久免费视| 蜜桃在线一区二区三区| 久久精品视频在线播放| 黑人玩弄人妻一区二区三区| 欧美大片免费高清观看| 最新中文字幕一区二区三区| 国产中文一区二区| 黄色大全在线观看| 欧美另类综合| 亚洲系列中文字幕| 国产不卡的av| 国产精欧美一区二区三区蓝颜男同| 国产精品每日更新在线播放网址| www.久久艹| 中文字幕+乱码+中文字幕明步| 好吊日精品视频| 在线观看欧美成人| 亚洲自拍偷拍精品| 99精品在线免费观看| 黑人精品xxx一区| 大地资源网在线观看免费官网 | 欧美一级xxx| av动漫在线观看| 性xxxxfjsxxxxx欧美| 国产午夜久久久久| 精品免费国产| 午夜老司机福利| 久久国产精品第一页| 91成人精品网站| 久久伊人成人网| 国产大片一区| 中文字幕九色91在线| xxxx黄色片| 91亚洲无吗| 欧美三级三级三级| 国产精彩免费视频| 欧美另类老肥妇| 亚洲图片一区二区| 400部精品国偷自产在线观看| 成人在线免费电影| 久久精品日韩一区二区三区| 国产在线观看一区| 国产综合无码一区二区色蜜蜜| 激情av综合网| 成人黄色免费看| 这里只有精品6| 蜜桃视频在线观看一区二区| 国产成人精品久久久| 综合激情网五月| 国产精品嫩草99av在线| 久久久久久久久久久亚洲| 久久免费视频6| 欧美精品偷拍| 欧美激情国产精品| 免费日韩在线视频| 国模大胆一区二区三区| 久久久久久91香蕉国产| 久久久久久久中文字幕| 激情久久综合| 97婷婷大伊香蕉精品视频| 国产精品日日夜夜| aa国产精品| 日韩av免费看| 中文字幕在线观看第二页| 日韩和欧美一区二区三区| 国产精品久久久久久久9999| 国产偷人爽久久久久久老妇app| 日本欧美韩国一区三区| 国产精品日日做人人爱| 91亚洲视频在线观看| 国产在线精品免费| 91嫩草视频在线观看| 好男人在线视频www| 91亚洲精品一区二区乱码| 麻豆蜜桃91| 成人精品福利| 亚洲精品欧美激情| 成年人午夜视频在线观看| 美女18一级毛片一品久道久久综合| 在线这里只有精品| 激情在线观看视频| 成人在线tv视频| 亚洲欧洲在线免费| 日韩av手机在线免费观看| 你懂的网址国产 欧美| 久久久亚洲国产| 无码日韩精品一区二区| 国产精品一区免费在线观看| 韩国成人一区| 日本中文字幕在线看| 亚洲一区二区3| 国产天堂在线播放| 日本精品在线播放| 精品无人国产偷自产在线| 美国精品一区二区| 亚洲天堂成人| 国产精品尤物福利片在线观看| 性生活黄色大片| 久久久天堂av| 97超碰国产精品| 亚洲日本在线观看视频| 欧美大黄免费观看| 亚洲一区视频在线播放| 国产精品chinese| 国产精品扒开腿做爽爽爽男男| 99国产精品99| 国产欧美一区二区精品忘忧草 | 2024最新电影在线免费观看| 黑人巨大精品欧美一区免费视频| 欧美一级小视频| 精品九九在线| 97涩涩爰在线观看亚洲| 一本大道伊人av久久综合| www.日韩av| 97av中文字幕| 国产成人亚洲一区二区三区| 日韩av最新在线| 2021亚洲天堂| 精品一区二区三区不卡 | 亚洲欧美日本在线观看| 亚洲天堂久久久久久久| 看欧美ab黄色大片视频免费 | 久久久久国产精品夜夜夜夜夜| 欧美亚洲一级| 国产一区免费| 污污在线观看| 91精品国产综合久久福利| 亚洲精品色午夜无码专区日韩| 99国产精品| www.一区二区三区| 亚洲wwwww| 91精品国产乱码久久蜜臀| 99久久99久久精品免费看小说.| 亚洲欧美春色| 国产日韩欧美二区| 中文字幕中文字幕在线中高清免费版| 欧美日韩一级片网站| 真实乱视频国产免费观看| 亚洲一区二区三区高清不卡| 国产一区视频观看| 国产伦久视频在线观看| 亚洲第一区第二区| 久久艹精品视频| 国产乱子伦一区二区三区国色天香| 亚洲成色www久久网站| 视频在线日韩| 国产亚洲视频中文字幕视频| 国产午夜麻豆影院在线观看| 久久亚洲欧美国产精品乐播| 日韩人妻精品无码一区二区三区| 色综合久久中文| 81精品国产乱码久久久久久| 欧美少妇另类| 欧美色涩在线第一页| 91免费在线看片| 久久国内精品视频| 视频一区二区视频| 亚洲91网站| 国语自产精品视频在线看| 无码精品一区二区三区在线| 欧美午夜宅男影院在线观看| 成年人免费观看视频网站| 日本人妖一区二区| 一区二区三区精品国产| 国产精品久久免费视频| 久久99久久99精品中文字幕 | **国产精品| 欧美超级免费视 在线| 亚洲爱情岛论坛永久| 亚洲国产成人av好男人在线观看| 天天躁日日躁狠狠躁av麻豆男男| 一区二区国产精品| 欧美日韩国产一二| 国产精品亲子伦av一区二区三区| 久久九九精品99国产精品| 亚洲av综合色区无码一二三区 | 中文字幕乱码久久午夜不卡| www.久久久久久久久久久| 狠狠综合久久| 欧美日韩免费观看一区| 宅男噜噜噜66国产精品免费| 欧美精品福利视频| 国产精品一区二区婷婷| 这里是久久伊人| 精品国产免费观看| 国产精品伦一区二区三级视频| 中文字幕一二三区| 先锋影音国产一区| 特级毛片在线免费观看| 美女av一区| 国产欧美精品一区二区| 国产蜜臀在线| 亚洲性视频网站| 国产高清不卡视频| 色狠狠综合天天综合综合| 波多野结衣家庭教师| 久久五月婷婷丁香社区| www.久久com| 久久精品欧洲| 国产精品8888| 欧美日韩有码| 韩日午夜在线资源一区二区| av日韩在线免费观看| 国产91精品久久久久| a毛片在线观看| 亚洲人线精品午夜| 蜜桃在线一区二区| 欧美日韩国产另类一区| 99热只有这里有精品| 亚洲男人天堂av| 成人黄色a级片| 99视频一区二区| 伦伦影院午夜理论片| 青青草视频一区| 日韩少妇内射免费播放18禁裸乳| 中文字幕一区二区三区乱码图片 | 中文字幕一区二区三区欧美日韩| 日本午夜精品电影| 欧美精品中文字幕亚洲专区| 18成人免费观看网站下载| 久久免费资源| 国产精品电影久久久久电影网| 三级在线看中文字幕完整版| 欧美日韩高清在线观看| 九色porny在线| 中文字幕日韩免费视频| 玖玖综合伊人| 日韩精品电影网| 日本精品999| 欧美成人a∨高清免费观看| 国产精品久久久久久免费播放| 91久久精品一区二区| 久久久久久久久久久久久久av| 亚洲高清不卡在线观看| 在线观看成人毛片| 成人免费视频在线观看| 人人艹在线视频| 国产精品美女久久福利网站| 精品视频第一页| 国产精品理伦片| 中文字幕资源站| 亚洲欧洲av在线| 国产一二三四区| 一区二区三区在线视频免费 | 欧美色精品在线视频| 丁香社区五月天| 日本久久一区二区| 波多野结衣视频免费观看| 在线视频一区二区三| 波多野结衣在线观看视频| 欧美综合亚洲图片综合区| 日本丰满少妇做爰爽爽| 欧美图片一区二区三区| 中文字幕无线码一区| 欧美精品 国产精品| 超碰在线97免费| 国产一区二区麻豆| 欧美视频在线免费| 丰满少妇乱子伦精品看片| 欧美日韩在线视频观看| 无码aⅴ精品一区二区三区| 在线观看不卡视频| 中文字幕在线观看第二页| 欧美日韩国产色站一区二区三区| 国产免费无遮挡| 精品va天堂亚洲国产| 日韩av地址| 色偷偷av一区二区三区乱| 中文字幕伦理免费在线视频| 欧美精品aaa| 成人小电影网站| 国产美女91呻吟求| 伊人精品综合| 欧美最大成人综合网| 国产精品久久久久久| 国产美女永久无遮挡| 国产九九精品| 伊人成人222| 波多野洁衣一区| 日韩福利在线视频| 一区二区三区中文在线观看| 毛片视频网站在线观看| 欧美日韩小视频| 好吊视频一区二区三区| 中文字幕日韩欧美在线| 亚洲91av| 国产盗摄xxxx视频xxx69| 99er精品视频| 欧美不卡在线一区二区三区| 国产精品久久观看| 日本三级免费网站| 九九视频精品免费| 在线精品一区二区三区| 综合激情成人伊人| 日韩一区二区视频在线| 678五月天丁香亚洲综合网| 五月婷在线视频| 久久香蕉频线观| 这里有精品可以观看| 91亚洲永久免费精品| 蜜桃精品噜噜噜成人av| a天堂资源在线观看| 精品一区二区三区在线观看| 亚洲国产精品自拍视频| 亚洲图片你懂的| 国产又黄又爽又色| 在线不卡a资源高清| 嫩草精品影院| 91精品国产91久久久久福利| 精品中文在线| 亚洲午夜高清视频| 国产精品久久久免费| 欧美性猛交乱大交| 国产精品久久久久久久久搜平片| 在线观看免费av片| 精品欧美一区二区三区精品久久 | 伊人久久大香线蕉av超碰| 午夜精品福利一区二区| 国产亚洲欧洲| 中国xxxx性xxxx产国| 亚洲精品国产成人久久av盗摄| 亚洲午夜无码久久久久| 日韩精品在线免费播放| 不卡一本毛片| http;//www.99re视频| 亚洲综合小说| 99精品999| 亚洲欧洲日产国产综合网| 亚洲精品国产欧美在线观看| 亚洲精品天天看| 漫画在线观看av| 国产精品福利视频| 欧美日韩精品| 麻豆av免费看| 亚洲一区二区免费视频| 亚洲经典一区二区| 欧美裸身视频免费观看| 亚洲精品三区| 手机福利在线视频| 韩国三级电影一区二区| 日日操免费视频| 精品视频123区在线观看| 日韩免费毛片| 久久高清精品| 日本激情综合网| 欧美国产精品中文字幕| 国产精品第六页| 中文字幕日韩欧美在线视频| 久久av影院| 中文字幕中文字幕99| 国内精品伊人久久久久影院对白| 日本一级特级毛片视频| 日韩一区二区三区三四区视频在线观看 | 国产一二三区精品| 91精品国产综合久久香蕉麻豆| 国产剧情在线| 动漫一区二区在线| 亚洲日本欧美| 国产精品无码一区二区三区免费 | 日本91av在线播放| 激情五月综合网| 欧美三级理论片| 亚洲天天做日日做天天谢日日欢| jlzzjlzzjlzz亚洲人| 久久久久久久久久婷婷| 无码日韩精品一区二区免费| 黄色一级大片在线观看| 国产精品国产自产拍高清av| 国产麻豆精品一区| 久久全球大尺度高清视频| 亚洲v天堂v手机在线| 午夜国产一区二区三区| 亚洲免费视频成人| 日韩一级免费毛片| 国产精品电影一区| 亚洲破处大片| 亚洲中文字幕一区| 欧洲精品一区二区三区在线观看| 人人干在线视频| 国产精品久久亚洲| 老色鬼久久亚洲一区二区| 91ts人妖另类精品系列| 欧美成人艳星乳罩| 欧美电影免费观看网站| 黄色一级片网址| 91老司机福利 在线| 国产精品女同一区二区| 韩日欧美一区二区| 日本不卡免费一区| 成人做爰www看视频软件| 在线欧美小视频| 麻豆福利在线观看| 先锋在线资源一区二区三区| 国产不卡一区视频| 中文字幕你懂的| 8050国产精品久久久久久| 久久精品青草| 97超碰在线免费观看|