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

前端監(jiān)控之性能與異常

開(kāi)發(fā) 前端
通過(guò)簡(jiǎn)單的js代碼,即可實(shí)現(xiàn)對(duì)頁(yè)面性能與異常的監(jiān)控與數(shù)據(jù)上報(bào),后續(xù)還需要相應(yīng)具體的平臺(tái)匯總,及相應(yīng)的業(yè)務(wù)所需數(shù)據(jù)(如PV、UV等)的計(jì)算,才能真正實(shí)現(xiàn)對(duì)產(chǎn)品的頁(yè)面數(shù)據(jù)呈現(xiàn),用于業(yè)務(wù)擴(kuò)展及宣導(dǎo)。

作者:京東物流 李菲菲


1 前言

現(xiàn)有的大部分監(jiān)控方案都是針對(duì)服務(wù)端的,而針對(duì)前端的監(jiān)控很少,諸如線上頁(yè)面的白屏?xí)r間是多少、靜態(tài)資源的加載情況如何、接口請(qǐng)求耗時(shí)好久、什么時(shí)候掛掉了、為什么掛掉,這些都不清楚。

同時(shí),在產(chǎn)品推廣過(guò)程中,經(jīng)常需要統(tǒng)計(jì)頁(yè)面的使用情況及用戶行為,從而可以從運(yùn)營(yíng)和產(chǎn)品的角度去了解用戶群體,進(jìn)而迭代升級(jí)產(chǎn)品,使其更加貼近用戶,為業(yè)務(wù)的擴(kuò)展提供更多可能性。

因而,我們需要一個(gè)前端的頁(yè)面監(jiān)控系統(tǒng),持續(xù)監(jiān)控和預(yù)警頁(yè)面性能的狀況,并且在發(fā)現(xiàn)瓶頸時(shí)用于指導(dǎo)優(yōu)化工作。

2 前端監(jiān)控目標(biāo)

前端監(jiān)控主要包含兩大塊:性能監(jiān)控及異常監(jiān)控

  1. 保證穩(wěn)定性(異常監(jiān)控)
    錯(cuò)誤監(jiān)控包括 JavaScript 代碼錯(cuò)誤,Promsie 錯(cuò)誤,接口(XHR,fetch)錯(cuò)誤,資源加載錯(cuò)誤(script,link等)等,這些錯(cuò)誤大多會(huì)導(dǎo)致頁(yè)面功能異常甚至白屏。
  2. 提升用戶體驗(yàn)(性能監(jiān)控)
    性能監(jiān)控包括頁(yè)面的加載時(shí)間,接口響應(yīng)時(shí)間等,側(cè)面反應(yīng)了用戶體驗(yàn)的好壞。

3 性能監(jiān)控

3.1 簡(jiǎn)單描述頁(yè)面加載

簡(jiǎn)單看一下,從輸入url到頁(yè)面加載完成的過(guò)程如下:

首先需要通過(guò) DNS(域名解析系統(tǒng))將 URL 解析為對(duì)應(yīng)的 IP 地址,然后與這個(gè) IP 地址確定的那臺(tái)服務(wù)器建立起 TCP 網(wǎng)絡(luò)連接,隨后我們向服務(wù)端拋出 HTTP 請(qǐng)求,服務(wù)端處理完我們的請(qǐng)求之后,把目標(biāo)數(shù)據(jù)放在 HTTP 響應(yīng)里返回給客戶端,拿到響應(yīng)數(shù)據(jù)的瀏覽器就可以開(kāi)始走一個(gè)渲染的流程。渲染完畢,頁(yè)面便呈現(xiàn)給了用戶。

我們可以將這個(gè)過(guò)程分為如下的過(guò)程片段:

  1. DNS 解析
  2. TCP 連接
  3. HTTP 請(qǐng)求拋出
  4. 服務(wù)端處理請(qǐng)求,HTTP 響應(yīng)返回
  5. 瀏覽器拿到響應(yīng)數(shù)據(jù),解析響應(yīng)內(nèi)容,把解析的結(jié)果展示給用戶

3.2 從開(kāi)發(fā)者角度,看頁(yè)面加載各階段

從輸入url到用戶可以使用頁(yè)面的全過(guò)程時(shí)間統(tǒng)計(jì),會(huì)返回一個(gè)PerformanceTiming對(duì)象,單位均為毫秒。
關(guān)于performace,已經(jīng)在《從前端角度淺談性能》中進(jìn)行過(guò)介紹,,下面再?gòu)?qiáng)調(diào)一下:

各階段的性能耗時(shí)可以通過(guò)API:window.performance來(lái)獲取,對(duì)應(yīng)的具體方法有:performance.timing、performance.getEntriesByType(‘resource’)、performance.navigation等。
如上,開(kāi)發(fā)者可以通過(guò)performance中各階段的時(shí)間戳,分別獲取到 頁(yè)面各階段的性能指標(biāo),具體的個(gè)靜態(tài)資源的加載耗時(shí)、及 頁(yè)面是否重定向和重定向耗時(shí)。

按觸發(fā)順序排列所有屬性:

  • navigationStart:在同一個(gè)瀏覽器上下文中,前一個(gè)網(wǎng)頁(yè)(與當(dāng)前頁(yè)面不一定同域)unload 的時(shí)間戳,如果無(wú)前一個(gè)網(wǎng)頁(yè) unload ,則與 fetchStart 值相等
  • redirectStart:第一個(gè) HTTP 重定向發(fā)生時(shí)的時(shí)間。有跳轉(zhuǎn)且是同域名內(nèi)的重定向才算,否則值為 0
  • unloadEventStart:前一個(gè)網(wǎng)頁(yè)(與當(dāng)前頁(yè)面同域)unload 的時(shí)間戳,如果無(wú)前一個(gè)網(wǎng)頁(yè) unload 或者前一個(gè)網(wǎng)頁(yè)與當(dāng)前頁(yè)面不同域,則值為 0
  • redirectEnd:最后一個(gè) HTTP 重定向完成時(shí)的時(shí)間。有跳轉(zhuǎn)且是同域名內(nèi)的重定向才算,否則值為 0
  • unloadEventEnd:和 unloadEventStart 相對(duì)應(yīng),返回前一個(gè)網(wǎng)頁(yè) unload 事件綁定的回調(diào)函數(shù)執(zhí)行完畢的時(shí)間戳
  • fetchStart:瀏覽器準(zhǔn)備好使用 HTTP 請(qǐng)求抓取文檔的時(shí)間,這發(fā)生在檢查本地緩存之前
  • domainLookupStart:DNS 域名查詢開(kāi)始的時(shí)間,如果使用了本地緩存(即無(wú) DNS 查詢)或持久連接,則與 fetchStart 值相等
  • domainLookupEnd:DNS 域名查詢完成的時(shí)間,如果使用了本地緩存(即無(wú) DNS 查詢)或持久連接,則與 fetchStart 值相等
  • connectStart:HTTP(TCP) 開(kāi)始建立連接的時(shí)間,如果是持久連接,則與 fetchStart 值相等,如果在傳輸層發(fā)生了錯(cuò)誤且重新建立連接,則這里顯示的是新建立的連接開(kāi)始的時(shí)間
  • secureConnectionStart:HTTPS 連接開(kāi)始的時(shí)間,如果不是安全連接,則值為 0
  • connectEnd:HTTP(TCP) 完成建立連接的時(shí)間(完成握手),如果是持久連接,則與 fetchStart 值相等,如果在傳輸層發(fā)生了錯(cuò)誤且重新建立連接,則這里顯示的是新建立的連接完成的時(shí)間
  • requestStart:HTTP 請(qǐng)求讀取真實(shí)文檔開(kāi)始的時(shí)間(完成建立連接),包括從本地讀取緩存,連接錯(cuò)誤重連時(shí),這里顯示的也是新建立連接的時(shí)間
  • responseStart:HTTP 開(kāi)始接收響應(yīng)的時(shí)間(獲取到第一個(gè)字節(jié)),包括從本地讀取緩存
  • responseEnd:HTTP 響應(yīng)全部接收完成的時(shí)間(獲取到最后一個(gè)字節(jié)),包括從本地讀取緩存
  • domLoading:開(kāi)始解析渲染 DOM 樹(shù)的時(shí)間,此時(shí) Document.readyState 變?yōu)?loading,并將拋出 readystatechange 相關(guān)事件
  • domInteractive:完成解析 DOM 樹(shù)的時(shí)間,Document.readyState 變?yōu)?interactive,并將拋出 readystatechange 相關(guān)事件
  • domContentLoadedEventStart:DOM 解析完成后,網(wǎng)頁(yè)內(nèi)資源加載開(kāi)始的時(shí)間,文檔發(fā)生 DOMContentLoaded事件的時(shí)間
  • domContentLoadedEventEnd:DOM 解析完成后,網(wǎng)頁(yè)內(nèi)資源加載完成的時(shí)間(如 JS 腳本加載執(zhí)行完畢),文檔的DOMContentLoaded 事件的結(jié)束時(shí)間
  • domComplete:DOM 樹(shù)解析完成,且資源也準(zhǔn)備就緒的時(shí)間,Document.readyState 變?yōu)?complete,并將拋出 readystatechange 相關(guān)事件
  • loadEventStart:load 事件發(fā)送給文檔,也即 load 回調(diào)函數(shù)開(kāi)始執(zhí)行的時(shí)間,如果沒(méi)有綁定 load 事件,值為 0
  • loadEventEnd:load 事件的回調(diào)函數(shù)執(zhí)行完畢的時(shí)間,如果沒(méi)有綁定 load 事件,值為 0

3.3 各階段性能的計(jì)算(自定義)

const { timing, navigation } = window.performance
const loadPageInfo = {};

// 頁(yè)面加載類型,區(qū)分第一次load還是reload, 0初次加載、1重加載
loadPageInfo.loadType = navigation.type;

// 頁(yè)面加載完成的時(shí)間 - 幾乎代表了用戶等待頁(yè)面白屏的時(shí)間
loadPageInfo.loadPage = timing.loadEventEnd - timing.navigationStart;

// 重定向的時(shí)間
loadPageInfo.redirect = timing.redirectEnd - timing.redirectStart;

// 卸載頁(yè)面的時(shí)間
loadPageInfo.unloadEvent = timing.unloadEventEnd - timing.unloadEventStart;

// 查詢 DNS 本地緩存的時(shí)間
loadPageInfo.appCache = timing.domainLookupStart - timing.fetchStart;

// 【重要】DNS 查詢時(shí)間
// 頁(yè)面內(nèi)是不是使用了太多不同的域名,導(dǎo)致域名查詢的時(shí)間太長(zhǎng)?推薦 DNS 預(yù)加載。
// 可使用 HTML5 Prefetch 預(yù)查詢 DNS
loadPageInfo.lookupDomain = timing.domainLookupEnd - timing.domainLookupStart;

// HTTP(TCP)建立連接完成握手的時(shí)間
loadPageInfo.connect = timing.connectEnd - timing.connectStart;

// 【重要】HTTP請(qǐng)求及獲取 文檔內(nèi)容的時(shí)間
loadPageInfo.request = timing.responseEnd - timing.responseStart;

// 【重要】前一個(gè)頁(yè)面 unload 到 HTTP獲取到 頁(yè)面第一個(gè)字節(jié)的時(shí)間
// 【原因】這可以理解為用戶拿到你的資源占用的時(shí)間,推薦 加異地機(jī)房,加 CDN 處理,加寬帶,加 CPU 運(yùn)算速度
// TTFB 即 Time To First Byte
loadPageInfo.ttfb = timing.responseStart - timing.navigationStart;

// 解析 DOM 樹(shù)結(jié)構(gòu)的時(shí)間
loadPageInfo.domReady = timing.domComplete - timing.responseEnd;

// 【重要】執(zhí)行 onload 回調(diào)函數(shù)的時(shí)間
// 【原因】是否太多不必要的操作都放在 onload 回調(diào)函數(shù)里執(zhí)行了,推薦 延遲加載、按需加載的策略
loadPageInfo.loadEvent = timing.loadEventEnd - timing.loadE

4 異常監(jiān)控

前端需要監(jiān)控的錯(cuò)誤主要有兩類:

  1. Javascript錯(cuò)誤(js錯(cuò)誤、promise錯(cuò)誤)
  2. 監(jiān)聽(tīng)error錯(cuò)誤(資源加載錯(cuò)誤)

4.1 console.error

// 重寫(xiě)console.error,可以捕獲更全面的報(bào)錯(cuò)信息
var oldError = console.error;


console.error = function(tempErrorMsg){
var errorMsg = ( arguments[0] && arguments[0].message ) || tempErrorMsg;
var lineNumber = 0;
var columnNumber = 0;
var errorStack = arguments[0] && arguments[0].stack;


if( !errorStack ){
saveJSError( 'console_error', errorMsg, '', lineNumber, columnNumber, 'CustomizeError: ' + errorMsg );
}else{
saveJSError( 'console_error', errorMsg, '', lineNumber, columnNumber, errorStack );
}


return oldError.apply( console, arguments );

4.2 error事件

通過(guò)對(duì)error事件的監(jiān)聽(tīng),可以捕捉到 js語(yǔ)法 及 資源加載 的錯(cuò)誤。根據(jù) event.target.src / href 來(lái)判斷是否為資源加載錯(cuò)誤。

window.addEventListener( 'error', function(e){
var errorMsg = e.error && e.error.message,
errorStack = e.error && e.error.stack,
pageUrl = e.filename,
lineNumber = e.lineno,
columnNumber = e.colno;


saveJSError( 'on_error', errorMsg, pageUrl, lineNumber, columnNumber, errorStack );
} );

4.3 Promise

// 捕獲未處理的Promise錯(cuò)誤
window.onunhandledrejection = function(e){
var errorMsg = '';
var errorStack = '';
if( typeof e.reason === 'object' ){
errorMsg = e.reason.message;
errorStack = e.reason.stack;
}else{
errorMsg = e.reason;
errorStack = '';
}
saveJSError( 'on_error', errorMsg, '', 0, 0, 'UncaughtInPromiseError: ' + errorStack );
}

5 總結(jié)

以上,通過(guò)簡(jiǎn)單的js代碼,即可實(shí)現(xiàn)對(duì)頁(yè)面性能與異常的監(jiān)控與數(shù)據(jù)上報(bào),后續(xù)還需要相應(yīng)具體的平臺(tái)匯總,及相應(yīng)的業(yè)務(wù)所需數(shù)據(jù)(如PV、UV等)的計(jì)算,才能真正實(shí)現(xiàn)對(duì)產(chǎn)品的頁(yè)面數(shù)據(jù)呈現(xiàn),用于業(yè)務(wù)擴(kuò)展及宣導(dǎo)。

6 后續(xù)

上述代碼,實(shí)現(xiàn)了對(duì)頁(yè)面性能及異常的監(jiān)控,但其實(shí)前端的監(jiān)控還包括了請(qǐng)求接口的監(jiān)控與埋點(diǎn)的實(shí)現(xiàn),后續(xù)將陸續(xù)推出,敬請(qǐng)期待。

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

2022-10-10 18:39:01

legendapp前端框架

2018-09-14 16:20:37

2015-08-20 10:23:23

前端代碼日志收集

2012-11-05 13:59:12

WebFdSafeJS

2019-04-08 16:50:33

前端性能監(jiān)控

2011-02-22 15:16:56

VSFTPD

2022-11-28 07:35:52

前端錯(cuò)誤

2025-06-12 02:22:00

Netflix前端系統(tǒng)

2022-06-10 14:09:18

前端監(jiān)控異常數(shù)據(jù)

2020-09-04 13:50:35

前端異常監(jiān)控代碼

2012-08-20 13:42:48

Web

2020-08-25 18:56:19

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

2021-05-31 08:30:50

監(jiān)控網(wǎng)站性能

2021-09-13 05:00:09

監(jiān)控Trends 性能

2021-09-11 21:02:24

監(jiān)控Sentry Web性能

2010-05-26 18:40:54

Linux性能監(jiān)控

2021-09-09 12:28:50

Sentry Web性能監(jiān)控

2011-11-08 21:47:37

Linux 監(jiān)控 IO

2010-05-26 18:21:04

Linux性能監(jiān)控

2010-05-26 18:31:51

Linux性能監(jiān)控
點(diǎn)贊
收藏

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

日韩美女写真福利在线观看| 日韩精品一区二区视频| 日韩在线视频在线| 三级网站在线看| 日韩不卡一区二区| 欧美日韩成人在线播放| 亚洲精品成人无码| 中文无码日韩欧| 在线免费观看成人短视频| 玖玖精品在线视频| 欧美理论在线观看| 国内精品写真在线观看| 欧美孕妇孕交黑巨大网站| 免费看特级毛片| 亚洲电影一级片| 日韩欧美久久久| 国产aaaaa毛片| 超碰成人av| 国产精品国模大尺度视频| 国新精品乱码一区二区三区18| 中文字幕在线天堂| 136国产福利精品导航网址| 日韩在线免费观看视频| 无遮挡aaaaa大片免费看| 国产美女视频一区二区 | 国产一级视频在线| 色无极亚洲影院| 精品爽片免费看久久| 自拍视频第一页| 成人国产网站| 色综合天天综合狠狠| 国产一区二区四区| av黄色在线| 国产精品久久午夜| 欧美日韩在线不卡一区| 视频污在线观看| 国产精品911| 国产精品自拍视频| 国产精品午夜一区二区| 久久久久久色| 日本成熟性欧美| 精品成人av一区二区在线播放| 欧美三级乱码| 欧美精品在线免费观看| 少妇高潮在线观看| 91影院成人| 久久久国产精品x99av | 亚洲国产sm捆绑调教视频 | 三年中国中文观看免费播放| 女同另类激情重口| 亚洲成人黄色在线| 理论片大全免费理伦片| 国产精品黄网站| 精品福利一区二区三区免费视频| 少妇丰满尤物大尺度写真| 久久91视频| 制服丝袜成人动漫| 香蕉网在线视频| 91精品尤物| 亚洲国产美女精品久久久久∴| 韩国av中国字幕| 国产乱人伦精品一区| 欧美一二区视频| 国产女主播在线播放| 91在线一区| 日韩成人中文字幕在线观看| 三叶草欧洲码在线| 国产精品亚洲片在线播放| 亚洲性无码av在线| 午夜国产福利视频| 欧美在线看片| 午夜精品在线视频| 欧美一级淫片免费视频黄| 日韩国产欧美在线播放| 国产视频999| 亚洲精品久久久久久久久久 | 一本色道久久综合亚洲精品不| 97色在线视频观看| www.日韩一区| 精品亚洲aⅴ乱码一区二区三区| 亚洲aⅴ日韩av电影在线观看| 亚洲第一视频在线| 久久综合久久久久88| 日日夜夜精品网站| caoporm免费视频在线| 亚洲动漫第一页| 天天干在线影院| 国产一区二区高清在线| 日韩经典第一页| 少妇太紧太爽又黄又硬又爽小说 | 97人妻人人澡人人爽人人精品| 国产在线视频一区二区| 国内精品视频在线播放| 91精品专区| 一区二区三区四区乱视频| 六月丁香婷婷在线| 麻豆精品久久| 亚洲日韩第一页| a级片在线观看免费| 国产精品呻吟| av激情久久| 懂色av中文在线| 亚洲第一成人在线| 亚洲欧美自拍另类日韩| 卡通动漫国产精品| 日韩在线播放av| 秋霞精品一区二区三区| 国产一区二区三区四| 日本在线高清视频一区| av在线加勒比| 91精品国产一区二区三区蜜臀| 国产精品一级黄片| 欧美激情麻豆| 国产日韩av在线播放| 嫩草研究院在线观看| 亚洲最大成人网4388xx| 亚洲综合激情视频| 美女精品一区最新中文字幕一区二区三区 | 成人福利在线观看| 深夜福利视频在线免费观看| 亚洲免费看黄网站| 人人干人人干人人| 日本欧美韩国国产| 欧美黄色免费网站| 97在线播放免费观看| 欧美国产精品一区| 久久久久久久激情| 精品丝袜久久| 国模精品视频一区二区三区| 一级aaaa毛片| 国产精品丝袜黑色高跟| 日韩人妻精品无码一区二区三区| 一区二区三区四区高清视频 | 乱h高h女3p含苞待放| 日韩专区在线视频| 欧美美乳视频网站在线观看| 成人女同在线观看| 精品剧情在线观看| 免费在线视频观看| 国产久卡久卡久卡久卡视频精品| 亚洲在线播放电影| 国产成人77亚洲精品www| 亚洲一区二区黄| av片免费观看| 国产欧美一区视频| 嫩草av久久伊人妇女超级a| 久草在线成人| 国产精品海角社区在线观看| 高清美女视频一区| 欧美无人高清视频在线观看| 在线看片中文字幕| 美国欧美日韩国产在线播放| 亚洲精品久久区二区三区蜜桃臀| 深夜视频一区二区| 色婷婷久久一区二区| 在线观看国产小视频| 国产精品久久久久一区| 亚洲一二三不卡| 国色天香一区二区| 黄色一区三区| 三级成人黄色影院| www日韩欧美| www.天堂av.com| 亚洲成a人在线观看| 亚洲av成人片色在线观看高潮 | 深夜福利视频网站| 一本一本大道香蕉久在线精品| 在线免费观看麻豆| 蓝色福利精品导航| av影院在线播放| 欧美电影在线观看完整版| 国产91热爆ts人妖在线| 91免费在线| 精品少妇一区二区三区免费观看| 91在线看视频| 日本一区二区三区高清不卡| 伊人五月天婷婷| 伊人成人在线视频| 日本一区二区视频| 日本伊人久久| 日本高清+成人网在线观看| 伊人免费在线| 亚洲精品一区二区三区四区高清 | 日本一区二区精品视频| www.久久久.com| 97超级碰在线看视频免费在线看| 98在线视频| 精品国产伦理网| 成人免费视频国产免费| 夜夜亚洲天天久久| 我不卡一区二区| 国产精品资源站在线| 高清在线观看免费| 亚洲成av人片一区二区密柚| 国产一区精品视频| 国产精品.xx视频.xxtv| 久久久久久网址| 2021av在线| 亚洲精品国产精品乱码不99按摩| 中文字幕在线观看第二页| 亚洲国产成人tv| 免费高清在线观看电视| 91一区二区在线| 久久精品一二三四| 日韩国产欧美在线视频| a级黄色一级片| 91超碰国产精品| 亚洲国产精品日韩| 欧美理伦片在线播放| 91在线视频免费| 国产极品久久久久久久久波多结野| 欧美人在线视频| 日本中文字幕在线播放| 亚洲欧美www| 丁香花免费高清完整在线播放| 欧美日韩精品欧美日韩精品一| 九九热国产视频| 亚洲毛片av在线| 天堂网中文在线观看| 久久这里只有精品6| 丰满人妻一区二区三区免费视频棣| 久久国产综合精品| 三级在线免费看| 美女爽到呻吟久久久久| 日韩网站在线免费观看| 欧美/亚洲一区| 正义之心1992免费观看全集完整版| 国产成人精品999在线观看| 精品乱码一区| 97久久综合精品久久久综合| 91热精品视频| 亚洲福利影视| 国产欧亚日韩视频| 久久久久毛片| 国产精品久久久久久久9999 | 亚洲自拍小视频| 久久精品国产福利| 国产免费一区二区三区在线能观看 | 亚洲免费在线视频| 国产精品成人69xxx免费视频| 国产精品区一区二区三区| 91成人精品一区二区| 国产视频一区在线观看| 一区二区三区四区免费| 久久精品综合网| 男人操女人动态图| 久久久久久久久久久黄色| 中文字幕第4页| 国产欧美日韩精品一区| 色欲狠狠躁天天躁无码中文字幕 | 精品不卡在线视频| 动漫av一区二区三区| 精品国产伦一区二区三区免费 | 波多野结衣之无限发射| 亚洲国产裸拍裸体视频在线观看乱了中文| 女人床在线观看| 激情久久久久| 亚洲熟女乱色一区二区三区| 首页亚洲欧美制服丝腿| av亚洲天堂网| 国产v日产∨综合v精品视频| 亚洲av成人片色在线观看高潮| 久久综合av免费| 国精产品一区一区| 亚洲女同一区二区| 日韩免费不卡视频| 色综合久久久久久久久久久| 中文字幕在线2018| 日韩欧美一二三四区| 秋霞av鲁丝片一区二区| 国产亚洲免费的视频看| 精品黄色免费中文电影在线播放| 九九热精品视频| 欧亚av在线| 国产精品亚洲片夜色在线| 欧美三级一区| 久久综合色一本| 婷婷亚洲五月色综合| 国产成人艳妇aa视频在线| 麻豆亚洲精品| 性生交大片免费看l| 2021中文字幕一区亚洲| 日韩在线一卡二卡| 午夜精品福利一区二区蜜股av| 婷婷激情五月综合| 日韩欧美电影在线| 男人的天堂在线免费视频| 久久综合伊人77777蜜臀| 麻豆mv在线观看| 成人av.网址在线网站| 成人h动漫精品一区二区器材| 日韩国产精品一区二区三区| 中文字幕日韩欧美精品高清在线| 浮妇高潮喷白浆视频| 韩国欧美国产1区| 欧美图片第一页| 亚洲一区二区五区| 自拍偷拍第八页| 亚洲国产精品成人va在线观看| 91视频在线观看| 5566成人精品视频免费| 国产精品亚洲欧美日韩一区在线| 久久久久久久久久久久久9999| 午夜精品久久久久久久四虎美女版| 国产精品无码av在线播放| 精品在线一区二区三区| 亚洲熟妇一区二区三区| 亚洲欧美精品午睡沙发| 懂色av蜜臀av粉嫩av喷吹| 亚洲精品福利在线观看| 日本在线观看大片免费视频| 国产精品日韩在线| 天海翼亚洲一区二区三区| 日本一道在线观看| 麻豆专区一区二区三区四区五区| 中文字幕一区二区三区人妻不卡| 亚洲精品高清在线观看| 中文字幕乱码视频| 亚洲一区二区国产| 日韩免费电影| 久久综合九色综合网站| 伊人久久大香线蕉综合热线| 搡的我好爽在线观看免费视频| 国产精品视频一二三区| 最近免费中文字幕大全免费版视频| 精品va天堂亚洲国产| 在线免费观看的av| 成人免费视频97| 日韩在线综合| 在线观看国产一级片| 国产精品三级电影| 亚洲综合一区中| 最近2019年日本中文免费字幕| **欧美日韩在线观看| 久久精品magnetxturnbtih| 在线日韩中文| xfplay5566色资源网站| 亚洲h精品动漫在线观看| 欧美 日韩 国产 成人 在线| 欧美激情伊人电影| 国产精品流白浆在线观看| 国产高清www| www.66久久| 国产超碰人人爽人人做人人爱| 亚洲国产精品久久久久秋霞蜜臀| 国产蜜臀在线| 国产日韩欧美综合精品| 99国产一区| 国产特级黄色录像| 91福利国产精品| 在线观看美女网站大全免费| 国产精品永久免费观看| 久久久久蜜桃| 巨乳女教师的诱惑| 香蕉影视欧美成人| 欧美日韩视频精品二区| 国产精品高清免费在线观看| 青青草97国产精品麻豆| 中文字幕一区二区三区四| 一区二区三区毛片| 日本xxxxwww| 热久久99这里有精品| 欧美日韩国产传媒| 毛毛毛毛毛毛毛片123| 亚洲成人av资源| 美国一级片在线免费观看视频| 国产精品国产亚洲伊人久久 | 午夜精品在线| 日韩五码在线观看| 国产欧美一区二区精品秋霞影院| 中国老头性行为xxxx| 久久99视频免费| 九九视频精品全部免费播放| 不卡的av中文字幕| 亚洲一区在线免费观看| 免费人成在线观看网站| 成人国产精品日本在线| 91久久黄色| 五月激情四射婷婷| 欧美v亚洲v综合ⅴ国产v| jizz内谢中国亚洲jizz| 中文字幕中文字幕99| www.66久久| 国产精品久久久久久久久毛片 | 欧美日韩精品区| 这里精品视频免费| 国产 日韩 欧美 综合 一区| 婷婷丁香激情网| 亚洲一区二区欧美日韩| 国产视频第一页在线观看| 亚洲精品免费网站| 首页国产欧美日韩丝袜| 国产精品18p| 久久精品免费播放| 亚洲v天堂v手机在线| 日韩欧美理论片| 在线中文字幕一区二区| 黄色美女视频在线观看| 亚洲狠狠婷婷综合久久久| 99久久综合狠狠综合久久|