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

您的位置:首頁技術文章
文章詳情頁

js前端對于大量數據的展示方式及處理方法

瀏覽:122日期:2024-04-11 10:18:00

最近暫時脫離了演示項目,開始了公司內比較常見的以表單和列表為主的項目。干一個,愛一個了。從開始的覺得自己都做了炫酷的演示項目了,這對我來說就是個小意思,慢慢也開始踩坑,有了些經驗總結可談。

現下不得不說是個數據的時代,有數據就必定有前端來展示。雜亂的數據通過數據分析(未碰到的點,不講請搜),提煉出業務相關的數據維度,而前端所做的就是把這些一個個數據通過不同維度(key-value)的描述來展示到頁面上。

除去花哨的展示方式(圖表等),展示普通的大量列表數據有兩種常用方式,分頁和觸底加載(滾動加載)。

分頁是一種比較經典的展示方式,碰到的問題比較少,最多是因為一頁展示的數據量大些的時候可以用圖片懶加載,來加速一些(不過基本一頁也不太會超過200個,不然就失去了分頁的意義了)。

js前端對于大量數據的展示方式及處理方法

而最近在實現滾動加載時,出現了卡頓的情況。

js前端對于大量數據的展示方式及處理方法

問題背景:

數據量:1500左右;數據描述形式:圖片 + 部分文字描述;卡頓出現在兩個地方:

滾動卡頓,往往是動一下滾輪,就要卡個2-3s單個數據卡片事件響應卡頓:鼠標浮動,本應0.5s向下延展,但是延展之前也會卡個1-2s;鼠標點擊,本應彈出圖片大圖,但是彈出前也要卡個1-2s

js前端對于大量數據的展示方式及處理方法

分析過程:

卡頓首先想到是渲染幀被延長了,用控制臺的Performance查看,可以看出是重排重繪費時間:

js前端對于大量數據的展示方式及處理方法

如圖,Recalculate Style占比遠遠大于其他,一瞬間要渲染太多的卡片節點,重排重繪的量太大,所以造成了主要的卡頓。因此,需要減少瞬間的渲染量。

渲染的數據項與圖片渲染有關,于是會想到圖片資源的加載和渲染,看控制臺的Network的Img請求中,有大量的pending項(pending項參考下圖所示)。

js前端對于大量數據的展示方式及處理方法

圖片在不停地加載然后渲染,影響了頁面的正常運行,因此可以作懶加載優化。

解決過程:

首先針對最主要的減少瞬間渲染量,逐步由簡入繁嘗試:

1. 自動觸發的延時渲染由定時器來操作,setTimeout和setInterval都可以,注意及時跳出循環即可。我使用了setTimeout來作為第一次嘗試(下面代碼為后續補的手寫,大概意思如此)

使用定時器來分頁獲取數據,然后push進展示的列表數據中:

data() { return { count: -1, params: { ... // 請求參數 pageNo: 0, pageSize: 20 }, timer:null, list: [] }},beforeDestroy() { if (this.timer) { clearTimeout(this.timer) this.timer = null }},methods: { getListData() { this.count = -1 this.params = { ... // 請求參數 pageNo: 0, pageSize: 20 } this.timer = setTimeout(this.getListDataInterval, 1000) }, getListDataInterval() { params.pageNo++ if (params.pageNo === 1) { this.list.length = 0 } api(params) // 請求接口 .then(res => { if (res.data) { this.count = res.data.count this.list.push(...res.data.list) } }) .finally(() => { if (count >= 0 && this.list.length < count) { this.timer = setTimeout(this.getListDataInterval, 1000) } }) } ...}

結果:首屏渲染速度變快了,不過滾動和事件響應還是略卡頓。原因分析:滾動的時候還是有部分數據在渲染和加載,其次圖片資源的加載渲染量未變(暫未作圖片懶加載)。

2. 改為滾動觸發加載(滾動觸發下的“分頁”形容的是數據分批次)

滾動觸發,好處在于只會在觸底的情況下影響用戶一段時間,不會在開始時一直影響用戶,而且觸底也是由用戶操作概率發生的,相對比下,體驗性增加。此處有兩種做法:

滾動觸發“分頁”請求數據,缺點:除了第一次,之后每次滾動觸發展示數據會比下一種耗費多一個請求的時間一次性獲取所有數據存在內存中,滾動觸發“分頁”展示數據。缺點:第一次一次性獲取所有數據的時間,比上一種耗費多一點時間上述兩種做法,可視數據的具體數量決定(據同事所嘗試,兩三萬個數據的獲取時間在1s以上,不過這個也看數據結構的復雜程度和后端查數據的方式),決定前可以調后端接口試一下時間。

例:結合我本次項目的實際情況,不需要一次性獲取所有的數據,可以一次性獲取一個時間點的數據,而每個時間點的數據不會超過3600個,這就屬于一個比較小的量,嘗試下來一次性獲取的時間基本不超過500ms,于是我選擇第二種

先一次性獲取所有數據,由前端控制滾動到距離底部的一定距離,push一定量的數據到展示列表數據中:

data() { return { timer: null, list: [], // 存儲數據的列表 showList: [], // html中展示的列表 isLoading: false, // 控制滾動加載 currentPage: 1, // 前端分批次擺放數據 currentPageSize: 50, // 前端分批次擺放數據 lastListIndex: 0, // 記錄當前獲取到的最新數據位置 lastTimeIndex: 0, // 記錄當前獲取到的最新數據位置 }},created() { // 優化點:可做可不做,其中的數值都是按照卡片的寬高直接寫入的,因為不是通用組件,所以從簡。 this.currentPageSize = Math.round( (((window.innerHeight / 190) * (window.innerWidth - 278 - 254)) / 220) * 3 ) // (((window.innerHeight / 卡片高度和豎向間距) * (window.innerWidth - 列表內容距視口左右的總距離 - 卡片寬度和橫向間距)) / 卡片寬度) * 3// *3代表我希望每次加載至少能多出三個視口高度的數據;列表內容距視口左右的總距離:是因為我是兩邊固定寬度,中間適應展示內容的結構},beforeDestroy() { if (this.timer) { clearTimeout(this.timer) this.timer = null }},methods: { /** * @description: 獲取時間點的數據 */ getTimelineData(listIndex, timeIndex) { if ( // this.list的第一、二層是時間軸this.list[listIdex].timeLines[timeIndex],在獲取時間點數據之前獲取了 this.list && this.list[listIndex] && this.list[listIndex].timeLines && this.list[listIndex].timeLines[timeIndex] && this.showList && this.showList[listIndex] && this.showList[listIndex].timeLines && this.showList[listIndex].timeLines[timeIndex] ) { this.isLoading = true // 把當前時間點變成展示狀態 if (!this.showList[listIndex].active) { this.handleTimeClick(listIndex, this.showList[listIndex]) } if (!this.showList[listIndex].timeLines[timeIndex].active) this.handleTimeClick( listIndex, this.showList[listIndex].timeLines[timeIndex] ) if (!this.list[listIndex].timeLines[timeIndex].snapDetailList) { this.currentPage = 1 } if ( !this.list[listIndex].timeLines[timeIndex].snapDetailList // 第一次加載時間點數據,后面的或條件可省略 ) {return suspectSnapRecords({ ... }) .then(res => { if (res.data && res.data.list && res.data.list.length) { let show = [] res.data.list.forEach((item, index) => {show[index] = {}if (index < 50) { show[index].show = true} else { show[index].show = true} }) this.$set(this.list[listIndex].timeLines[timeIndex],’snapDetailList’,res.data.list ) this.$set(this.showList[listIndex].timeLines[timeIndex],’snapDetailList’,res.data.list.slice(0, this.currentPageSize) ) this.$set(this.showList[listIndex].timeLines[timeIndex],’showList’,show ) this.currentPage++ this.lastListIndex = listIndex this.lastTimeIndex = timeIndex } }) .finally(() => { this.$nextTick(() => { this.isLoading = false }) }) } else { // 此處是時間點被手動關閉,手動關閉會把showList中的數據清空,但是已經加載過數據的情況 if ( this.showList[listIndex].timeLines[timeIndex].snapDetailList .length === 0 ) { this.currentPage = 1 this.lastListIndex = listIndex this.lastTimeIndex = timeIndex } this.showList[listIndex].timeLines[timeIndex].snapDetailList.push( ...this.list[listIndex].timeLines[timeIndex].snapDetailList.slice( (this.currentPage - 1) * this.currentPageSize, this.currentPage * this.currentPageSize ) ) this.currentPage++ this.$nextTick(() => { this.isLoading = false }) return } } else { return } }, /** * @description: 頁面滾動監聽,用的是公司內部的框架,就不展示html了,不同框架原理都是一樣的,只是需要寫的代碼多與少的區別,如ElementUI的InfiniteScroll,可以直接設置觸發加載的距離閾值 */ handleScroll({ scrollTop, percentY }) { // 此處的scrollTop是組件返回的縱向滾動的已滾動距離,percentY則是已滾動百分比 this.bus.$emit(’scroll’) // 觸發全局的滾動監聽,用于圖片的懶加載 this.scrolling = true if (this.timer) { // 防抖機制,直至滾動停止才會運行定時器內部內容 clearTimeout(this.timer) } this.timer = setTimeout(() => { requestAnimationFrame(async () => { // 因為內部有觸發重排重繪,所以把代碼放在requestAnimationFrame中執行 let height = window.innerHeight if ( percentY > 0.7 && // 保證最開始的時候不要瘋狂加載,已滾動70%再加載 Math.round(scrollTop / percentY) - scrollTop < height * 2 && // 保證數據量大后滾動頁面長的時候不要瘋狂加載,在觸底小于兩倍視口高度的時候才加載 !this.isLoading // 保險,不同時運行下面代碼,以防運行時間大于定時時間 ) { this.isLoading = true let len = this.list[this.lastListIndex].timeLines[ this.lastTimeIndex ].snapDetailList.length // list為一次性獲取所有數據存在內存中 if ((this.currentPage - 1) * this.currentPageSize < len) { // 前端分批次展示的情況 this.showList[this.lastListIndex].timeLines[this.lastTimeIndex ].snapDetailList.push(...this.list[this.lastListIndex].timeLines[ this.lastTimeIndex].snapDetailList.slice( (this.currentPage - 1) * this.currentPageSize, this.currentPage * this.currentPageSize) ) this.currentPage++ } else if ( this.list[this.lastListIndex].timeLines.length > this.lastTimeIndex + 1 ) { // 前端分批次展示完上一波數據,該月份時間軸上下一個時間點存在的情況 await this.getTimelineData(this.lastListIndex,this.lastTimeIndex + 1 ) } else if (this.list.length > this.lastTimeIndex + 1) { // 前端分批次展示完上一波數據,該月份時間軸上下一個時間點不存在,下一個月份存在的情況 await this.getTimelineData(this.lastListIndex + 1, 0) } } this.$nextTick(() => { this.isLoading = false this.scrolling = false }) }) }, 500) },

結果:首屏渲染和事件響應都變快了,只是滑動到底部的時候有些許卡頓。原因分析:滑動到底部的卡頓,也是因為一瞬間渲染一堆數據,雖然比一次性展示所有的速度快很多,但是還是存在相比一次性展示不那么嚴重的重排和重繪,以及圖片不停加載渲染的情況。

3. 滾動觸發+圖片懶加載

圖片懶加載可以解決每次渲染數據的時候因為圖片按加載順序不停渲染產生的卡頓。滾動觸發使用點2的代碼。提取通用的圖片組件,通過滾動事件的全局觸發,來控制每個數據項圖片的加載:如上,點2中已經在handleScroll中設置了 this.bus.$emit(’scroll’) // 觸發全局的滾動監聽,用于圖片的懶加載

// main.jsVue.prototype.bus = new Vue()...

以下的在template中寫js不要學噢

// components/DefaultImage.vue<template> <div ref='image'> <img src='http://www.gepszalag.com/bcjs/@/assets/images/image_empty.png' v-if='imageLoading' /> <img v-if='showSrc' v-show='!imageLoading && !imageError' :src='http://www.gepszalag.com/bcjs/showSrc' @load='imageLoading = false' @error=' imageLoading = false imageError = true ' /> <img src='http://www.gepszalag.com/bcjs/@/assets/images/image_error.png' v-if='imageError' /> </div></template><script>export default { name: ’DefaultImage’, props: { src: String, // 圖片源 lazy: Boolean // 懶加載 }, data() { return { imageLoading: true, imageError: false, showSrc: ’’, // 渲染的src timer: null } }, mounted() { if (this.lazy) { this.$nextTick(() => { this.isShowImage() }) this.bus.$on(’scroll’, this.handleScroll) } else { this.showSrc = this.src } }, beforeDestroy() { if (this.lazy) { this.bus.$off(’scroll’, this.handleScroll) } if (this.timer) { clearTimeout(this.timer) this.timer = null } }, methods: { handleScroll() { if (this.timer) { clearTimeout(this.timer) } this.timer = setTimeout(this.isShowImage, 300) }, isShowImage() { let image = this.$refs.image if (image) { let rect = image.getBoundingClientRect() const yInView = rect.top < window.innerHeight && rect.bottom > 0 const xInView = rect.left < window.innerWidth && rect.right > 0 if (yInView && xInView) { this.showSrc = this.src this.bus.$off(’scroll’, this.handleScroll) } } } }}</script>

結果:在點2首屏展示快的基礎上,事件交互更快了,觸發展示數據也快了。原因分析:防抖的圖片懶加載之后,只在用戶滾動停止時,加載視口內的圖片,就沒有后續不斷的加載渲染圖片,也就不會因為不停渲染圖片而影響事件交互和基礎的無圖卡片渲染。

以上一頓操作之后已經符合本項目的需求了。不過我研究了一下進階操作 🤔還可以只渲染視口元素,非視口用padding代替,以及把計算過程放在Web Worker多線程執行,進一步提升速度。待我研究一下操作補上

以上就是js前端對于大量數據的展示方式及處理方法的詳細內容,更多關于js 大量數據展示及處理的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 草比网站 | 亚洲精久| 国产日韩欧美精品一区二区 | 免费观看一级特黄欧美大片 | 午夜精品亚洲日日做天天做 | 国产精品一码二码三码在线 | 中文字幕高清av | 国产一区www | 国产午夜精品一区二区三区免费 | 亚洲综合色自拍一区 | 国产精品一区欧美 | 亚洲国产福利一区 | 日韩欧美视频一区 | 国产黄色在线观看 | 亚洲精品福利 | 一级免费视频 | 亚洲高清免费 | 色婷婷网 | 国产精品一区二区三区在线免费观看 | av观看 | 久久久久久久av | 免费视频一区 | 999精品视频| 毛片免费看 | 精品国产一区二区三区成人影院 | 99久久国产综合精品女不卡 | 婷婷丁香激情 | 国厂黄色片 | 亚洲精品视频免费看 | 99伊人 | 日韩中文字幕一区二区 | 国产精品毛片久久久久久久 | 一区二区在线视频 | 亚洲午夜视频在线观看 | 视频一二区 | 久久久精品国产 | 久久成人精品一区二区三区 | 国产一区二区三区四区 | 99视频只有精品 | 91免费在线 | 天天碰天天操 | 免费a视频| 1区2区视频| 久久久天堂国产精品女人 | 国产精品久久久久久一区二区三区 | 91亚洲狠狠婷婷综合久久久 | 成人亚洲 | 国产一级网站 | 欧美日韩在线观看一区二区 | 国产高清视频一区二区 | 国产精品久久婷婷六月丁香 | 最近免费中文字幕大全免费版视频 | 久久久高清 | 亚洲视频在线免费观看 | 播放一级黄色片 | 国产中文视频 | 成人精品视频在线观看 | 久久久久久亚洲一区二区三区蜜臀 | 国产成人免费在线 | 亚洲精品国产偷自在线观看 | 国产精品婷婷午夜在线观看 | 91人人爽人人爽人人精88v | 国产亚洲精品成人av久久影院 | 日本黄色一级片视频 | 四虎影院免费看 | 亚洲精久 | 欧美xxxx片 | 国产区区 | 亚洲男人av | 亚洲视频在线观看 | 激情综合网五月婷婷 | 久久人人爽人人爽人人片亚洲 | 亚洲成人二区 | 躁躁躁日躁夜夜躁 | 婷婷网址 | 午夜三区 | 欧洲一级黄 | 激情伊人| 中文字幕在线观看不卡视频 | 日本狠狠色 | 国产成人综合av | www.色涩涩.com网站 | 国产日韩视频在线播放 | 1000部羞羞视频在线看视频 | 波多野结衣一区二区三区中文字幕 | 天天干狠狠 | 国产噜噜噜噜噜久久久久久久久 | 亚洲综合无码一区二区 | a在线看 | 99这里只有精品视频 | 高清在线一区二区 | 国产精品国产精品国产专区不卡 | 一级全毛片 | 欧美日本韩国一区二区 | 国产精品久久久 | 国产免费一级特黄录像 | 国产精品久久久久aaaa | 特级淫片裸体免费看 | 亚洲精品日韩精品 | 国产精品日韩欧美一区二区三区 | 激情欧美一区二区三区中文字幕 | 久久综合伊人 | 一级毛片在线播放 | 久久青 | 欧美二区在线 | 国产成人精品一区二区在线 | 国产精品久久久久久久久久久小说 | 人人插人人干 | 国产一区日韩欧美 | 欧美日韩在线视频一区二区 | 国产韩国精品一区二区三区 | 999视频网| 99视频免费看 | 久久精品久久久 | 久久av一区二区三区 | 国产精品日产欧美久久久久 | 婷婷色av | 日韩在线观看一区 | 91免费观看 | 91xxx在线观看| 精品国产一区在线 | 欧美午夜影院 | 欧美视频精品 | www夜夜操| 亚洲久草 | 国产香蕉视频在线播放 | 欧美日韩在线免费 | 91久久夜色精品国产九色 | 91精品一区二区 | 成人免费看片 | 国产精品成人久久久久 | 99精品视频免费 | 成人在线免费视频观看 | 天天干天天爽 | 国产精品有限公司 | 99热在线免费观看 | 日韩精品一区二区三区在线观看 | a免费网站 | 亚洲啊v | 奇米二区 | 午夜激情免费在线观看 | 中文字幕久久精品 | 久久中文网| 国产一区二区精品丝袜 | 久久视频精品 | 国产中文在线 | 日本在线一区二区 | 国产精品久久久久久久午夜片 | 欧美乱操 | 日本三级在线观看中文字 | 99视频免费在线观看 | 91传媒在线播放 | 欧美激情精品久久久久久免费 | 日韩在线一区二区三区 | 免费的国产视频 | 久久99久久久久 | 亚洲欧美另类久久久精品2019 | 国产精品成人免费视频 | 欧美福利在线观看 | 欧美日韩免费一区二区三区 | 日韩成人在线一区 | 亚洲午夜在线 | 成年人免费网站 | 99久久精品国产一区二区三区 | 亚洲高清视频在线观看 | a在线播放 | 欧美视频免费在线 | 欧美成人综合在线 | 一色桃子av一区二区免费 | 断背山在线 | 日本成人在线视频网站 | 亚洲综合视频一区 | 伊人激情网 | 免费观看一级特黄欧美大片 | 手机看片369| 中文字幕 国产精品 | 亚洲专区中文字幕 | 九九精品视频在线 | 亚洲一区二区免费看 | 欧美亚洲在线 | 欧美一区久久 | www国产成人免费观看视频,深夜成人网 | 国外成人在线视频 | 日本在线免费 | 成人av片在线观看 | h视频在线免费观看 | 亚洲福利| 国产欧美日本 | 99久久婷婷国产综合精品 | 久久美女视频 | 欧美精品在线一区 | 国产美女精品一区二区三区 | 国产精品自拍一区 | 亚洲成人另类 | 在线观看视频一区二区三区 | 亚洲精品91 | 成人免费福利 | 久久久精品高清 | 精品国产乱码一区二区三区a | 国产96精品久久久 | 国产一区二区视频精品 | 国产色| 成人精品视频免费在线观看 | 一级片在线播放 | 日韩欧美一区二区三区视频 | 91超碰在线播放 | 一级黄色片视频 | 91精品国产综合久久久久久丝袜 | 国产精品久久久久久久久久久免费看 | 国产精品视屏 | 99久久久久国产精品免费 | 欧美一区二区三区精品免费 | 亚洲精品一区二区三区在线 | 欧美亚洲综合久久 | 亚洲精品一二区 | 国产精品久久久久久久免费大片 | av不卡电影在线观看 | 午夜精品| 久久国产亚洲精品 | 狠狠的日 | 91超碰caoporm国产香蕉 | 91日韩欧美| 国产日韩欧美一区二区在线观看 | 日韩国产在线播放 | 欧美精品一区在线发布 | 午夜影院在线观看 | 国产在线一区二区三区 | 久久亚洲一区 | 亚洲美女在线视频 | 久久亚洲一区二区 | 国产一二在线 | 成人深夜小视频 | 国产日韩欧美精品一区二区 | 综合色播 | www.久久爱.cn | av在线一区二区三区 | 日韩在线中文字幕 | 欧美激情综合五月色丁香小说 | 国产成人精品免高潮在线观看 | 国产高清不卡在线 | 国产成人精品高清久久 | 一区二区三| 九色在线观看 | 美女视频一区 | 成人免费视频网站在线看 | 中文字幕在线网址 | 91精品国产日韩91久久久久久 | 欧美成人精品激情在线观看 | 日韩成人免费 | 在线观看国产高清视频 | 国产亚洲欧美在线 | 成人精品一区二区三区 | 欧美在线观看网站 | 久久这里只有精品23 | 婷婷久久综合 | 操操日| 一区二区三区四区精品 | 亚洲www啪成人一区二区 | 亚洲国产精品99久久久久久久久 | 欧美一级在线观看 | 人人干视频 | 久久99热精品免费观看牛牛 | 99精品99| 中文字幕在线看 | 国产精品毛片一区二区三区 | 中文字幕在线精品 | 久久a视频| 日韩亚洲在线 | 成人免费视频播放 | 久久一二 | 国产精品国产精品国产专区不片 | 在线观看成人小视频 | 可以看黄的视频 | 欧美与黑人午夜性猛交久久久 | 亚洲高清一区二区三区 | 日韩超碰在线观看 | 夜夜夜久久久 | 久久精品首页 | 亚洲免费在线看 | 成人av免费 | 日韩一区二区三区精品 | 国产精品二区三区 | 久久久久国产一区二区三区 | 欧美日韩激情在线一区二区三区 | 国产三级视频 | 国产中文一区二区三区 | 在线观看毛片视频 | 欧美日韩一 | 欧美一级欧美三级在线观看 | 97久久超碰 | 国产一区亚洲 | 国产偷录视频叫床高潮对白 | 亚洲国产中文字幕 | 国产伦精品久久久一区二区三区 | 4hu网站| 午夜久久久| 国产精品日产欧美久久久久 | 激情视频在线观看免费 | 国产a视频 | 波多野结衣一二三 | 91在线视频一区 | 欧美在线视频三区 | 国产一区二区三区视频在线观看 | 欧美激情a∨在线视频播放 成人免费共享视频 | 亚洲精品乱码8久久久久久日本 | 精品日韩欧美一区二区三区在线播放 | 久热av中文字幕 | 欧美一区二区三区视频 | 神马久久久久久 | 日韩欧美国产一区二区三区 | 在线观看免费黄色小视频 | 在线观看欧美一区二区三区 | 久久久久久91香蕉国产 | 成人av免费| 日韩在线中文字幕 | 怡红院免费在线视频 | 久久韩国 | 天天操狠狠操 | 中文字幕影院 | 久久成人一区 | 亚洲综合中文网 | 日日碰碰 | 欧美精品1区2区3区 免费亚洲婷婷 | 国产福利一区二区三区视频 | 欧美一区第一页 | 日本三级电影免费 | 色啪网站 | 色婷婷国产精品综合在线观看 | 精品一区二区6 | 久久久精品一区 | 国产精品美女 | 日韩高清不卡一区二区三区 | 国内久久精品 | 超碰在线天天 | 国产成人精品一区二 | 91在线成人 | 日韩中文字幕免费在线播放 | 一级毛片aaaaaa免费看 | 久久精品91久久久久久再现 | 日日躁夜夜操 | 欧美一区永久视频免费观看 | 久久一 | 国产成人av在线 | 日韩亚洲精品在线观看 | 欧美色爽 | 日韩精品91爱爱 | 国产成人久久精品一区二区三区 | 久久爱综合网 | 成人黄色在线观看 | 欧美久久大片 | 奇米影 | 国产精品一区二区三区免费 | 久久久久久久国产 | 精品网站www | 欧美成人精品一区二区男人看 | 日韩小视频在线播放 | 亚洲精品一区二区三区在线 | 国内精品三级 | 精品无人乱码一区二区三区的优势 | 91高清免费 | 亚洲精品久久久久久久久久久 | 成人a在线视频免费观看 | 视频一区二区三区在线观看 | 久久久久国产精品免费免费搜索 | 中文字幕av亚洲精品一部二部 | av第一页| 日韩免费视频 | 日韩靠逼| 成人国产在线 | 99精品视频在线 | 亚洲视频三区 | 亚洲午夜精品久久久久久app | 五月婷婷导航 | 日韩在线一区二区三区 | 亚洲精品一区国产精品 | 伊人久色 | 亚洲女人的天堂 | 午夜视频福利在线观看 | 亚洲免费视频大全 | 精品一区视频 | 在线视频 亚洲 | 视频一区二区三区在线观看 | 91av在线免费看 | 日本不卡一区 | 午夜影院黄色 | 欧美狠狠操 | 麻豆一区二区三区 | www日本高清 | 日韩精品一区二区三区在线观看 | 日韩1区| 亚洲免费在线视频 | 亚洲h视频 | 91一区二区| 99久久99热这里只有精品 | 午夜爱爱毛片xxxx视频免费看 | 99精品网 | 久久毛片| 澳门久久 | 日本久久综合 | 国产精品无码久久久久 | 国产色在线 | 91在线免费看 | 日韩欧美a级v片免费播放 | 黄色电影天堂 | 国产主播福利 | 一级片av | 久久精品1| 国产最新精品视频 | 中文字幕亚洲欧美 | 日韩免费区 | av免费网站| 国产一区 | 欧洲毛片 | 蜜桃视频网站在线观看 | 亚洲国内精品 | 国产欧美日韩 | 久在线观看 | 久久精品亚洲精品国产欧美 | 成人精品在线观看 | 午夜精品久久久久久久男人的天堂 | 欧美一级网站 | 日韩欧美在线一区二区 | 欧美一级片在线观看 | 成人黄色在线视频 | 成人在线免费视频 | 欧美国产一区二区 | 欧美日韩精品一区二区三区在线观看 | 久久久久亚洲一区二区三区 | 黄网站涩免费蜜桃网站 | 黄色三及毛片 | 国产精品国产精品国产专区不卡 | 欧美日韩国产高清视频 | 亚洲精品免费在线 | 久久精品亚洲精品 | 亚洲天堂免费 | 久久精品国产99国产 | 可以免费看黄的网站 | 国产大胆自拍 | 中国特黄毛片 | www午夜 | 精品国产欧美一区二区三区成人 | 粉嫩国产精品一区二区在线观看 | 嫩草视频在线观看免费 | 欧美一区二区三区在线 | 欧美日韩亚洲视频 | 国产成人午夜视频 | 538在线精品 | 国产成年免费视频 | 看羞羞视频免费 | 欧美 日韩 国产 在线 | 久久99久久久久 | 成人av一区二区三区 | 太子妃好紧皇上好爽h | 日韩欧美不卡 | 免费一级毛片 | 在线无码 | 欧美日韩不卡在线 | 五月婷婷狠狠爱 | 国产一区二区在线播放 | 婷婷色在线 | 天天干国产 | 欧美成人一级 | 亚洲香蕉视频 | 9久久婷婷国产综合精品性色 | 国产最新一区 | aaa在线观看 | 中文一区| 精品久久久久一区二区国产 | 欧美大片一区 | 2019天天干夜夜操 | 国产精品日韩欧美一区二区三区 | 亚洲一区成人在线观看 | 欧美卡一卡二 | 精品无人乱码一区二区三区 | 久久伊| 日韩高清一区二区 | 高清久久| 黄色片免费在线 | av片免费 | 国产中文字幕在线 | 亚洲精品一区二三区不卡 | 亚洲a在线观看 | 欧美久久视频 | 久久国语 | 欧美日韩中文字幕在线播放 | 欧美精品一区自拍a毛片在线视频 | 国内精品国产成人国产三级粉色 | 日韩综合一区 | 91精品国产自产91精品 | 91免费观看视频 | 操操操操操操 | 黄a在线 | 亚洲国产日韩一区 | 在线免费看黄视频 | 久久久久久成人 | 99国内精品久久久久久久 | 在线视频 欧美日韩 | av黄色在线| www.久久精品 | 欧美激情五月 | 中文字幕日韩欧美一区二区三区 | 亚洲成人免费电影 | 日韩激情视频一区二区 | 国产xxx护士爽免费看 | 亚洲精品在线成人 | 激情五月婷婷 | 亚洲第一免费视频网站 | 欧美日韩一区二区三区在线观看 | 伊人久久综合 | 激情国产 | 久久国产经典视频 | 国产美女在线观看 | 精品久久久久国产免费 | 一区二区三区av | 日韩在线视频中文字幕 | www中文字幕 | 亚洲免费视频在线观看 | 国产精品久久久久久久久免费丝袜 | 精品福利在线 | 伊人超碰 | 中文字幕一区二区三区日韩精品 | 一二三四在线视频观看社区 | 日韩区 | 精品乱子伦一区二区三区 | 日韩在线视频观看 | 日韩一级 | 欧美猛交ⅹxxx乱大交视频 | 国产日韩欧美一区 | av中文网| 99精品99| 国产一级片 | 欧美视频在线一区 | 亚洲成人精品在线观看 | 黑人精品xxx一区一二区 | 国产欧美精品一区二区三区 | 国产欧美综合视频 | 高清久久 | 国产一区二区欧美 | 久久99精品国产麻豆婷婷洗澡 | 欧美成人激情视频 | 精品久久久久久久久久久久久久 | 天天久久综合网 | 国产99久久 | 亚洲欧美日韩一区 | 亚洲午夜精品视频 | 超碰在线观看97 | 91亚洲国产 | 亚洲网站免费 | 欧美a网 | 日韩a级免费视频 | 男人天堂av网 | 国产无套丰满白嫩对白 | 欧美日韩不卡视频 | 国产在线中文字幕 | 久久青| 夜夜骑av| 欧美日韩精品一区二区三区蜜桃 | av观看| 美女h在线观看 | 亚洲网站在线观看 | 久久久久久久久久久精 | 精品久久久久久久久久久久久久 | 狼人狠狠干 | 久久亚洲一区二区 | 亚洲免费视频网站 | 久久av综合 | 日本一区二区三区四区 | 国内精品亚洲 | 国产精品777一区二区 | 午夜不卡视频 | 91免费看片 | 蜜桃免费视频 | 国产片网站 | 中文字幕第100页 | 91亚洲成人 | 中文字幕视频三区 | 亚洲视频一区在线 | 91麻豆精品久久久久蜜臀 | 日韩精品在线播放 | 午夜寂寞影视在线观看 | 一区二区三区有限公司 | 日韩在线播放一区 | 久久成人一区 | 国产在线播 | 一级毛片免费 | 制服 丝袜 激情 欧洲 亚洲 | 四虎免看黄 | 国产在线一区二区三区 | 亚洲欧洲av在线 | 精品一区二区三区三区 | 黄色在线免费看 | 99福利视频 | 亚洲一区二区三区四区五区中文 | 欧美日韩免费一区二区三区 | 污污视频免费网站 | 中文字幕观看 | 日韩污视频在线观看 | 日韩a∨精品日韩在线观看 山岸逢花在线 | 不卡一区二区三区视频 | 天天操网 | 欧美一级毛片日韩一级 | 欧美精品国产精品 | 亚州中文| 日韩欧美视频一区二区三区 | 国产在线视频一区二区 | 色偷偷噜噜噜亚洲男人 | 国产精品一区二区久久久 | 成人在线免费视频观看 | 精品国产一区二区三区久久久久久 | 亚洲精品一区 | 国产精品久久久久久久久久三级 | 香蕉国产精品 | 久久久久91 | 国产精品久久 | 日韩精品免费 |