国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

如何讓10萬(wàn)條數(shù)據(jù)的小程序列表如絲般順滑

共 9283字,需瀏覽 19分鐘

 ·

2021-06-03 14:16

作者 | 劉發(fā)福
鏈接 | https://juejin.cn/post/6966904317148299271


某天閑著無(wú)聊想練一下手速,去上拉一個(gè)小程序項(xiàng)目中一個(gè)有1萬(wàn)多條商品數(shù)據(jù)的列表。在數(shù)據(jù)加載到1000多條后,是列表居然出現(xiàn)了白屏。
看了一下控制臺(tái):


‘Dom limit exceeded’,dom數(shù)超出了限制, 不知道微信是出于什么考慮,要限制頁(yè)面的dom數(shù)量。

一、小程序頁(yè)面限制多少個(gè)wxml節(jié)點(diǎn)?

寫(xiě)了個(gè)小dome做了個(gè)測(cè)試。listData的數(shù)據(jù)結(jié)構(gòu)為:

listData:[   {    isDisplay:true,    itemList:[{          qus:'下面哪位是劉發(fā)財(cái)女朋友?',          answerA:'劉亦菲',          answerB:'迪麗熱巴',          answerC:'齋藤飛鳥(niǎo)',          answerD:'花澤香菜',       }      .......//20條數(shù)據(jù)     ]   }]

頁(yè)面渲染效果:


1、dome1

<view wx:for="{{listData}}" class="first-item"  wx:for-index="i" wx:for-item="firstItem" wx:key="i" wx:if="{{firstItem.isDisplay}}">     <view class="item-list" wx:for="{{firstItem.itemList}}" wx:key="index">         <view>{{item.qus}}</view>         <view class="answer-list">              <view>A. <text>{{item.answerA}}</text></view>              <view>B. <text>{{item.answerB}}</text></view>              <view>C. <text>{{item.answerC}}</text></view>              <view>D. <text>{{item.answerD}}</text></view>         </view>    </view>       </view>


2、dome2,刪除了不必要的dom嵌套

<view wx:for="{{listData}}" class="first-item"  wx:for-index="i" wx:for-item="firstItem" wx:key="i" wx:if="{{firstItem.isDisplay}}">     <view class="item-list" wx:for="{{firstItem.itemList}}" wx:key="index">         <view>{{item.qus}}</view>         <view class="answer-list">              <view>A. {{item.answerA}}</view>              <view>B. {{item.answerB}}</view>              <view>C. {{item.answerC}}</view>              <view>D. {{item.answerD}}</view>         </view>    </view>       </view>


通過(guò)大致計(jì)算,一個(gè)小程序頁(yè)面大概可以渲染2萬(wàn)個(gè)wxml節(jié)點(diǎn) 而小程序官方的性能測(cè)評(píng)得分條件為少于1000個(gè)wxml節(jié)點(diǎn)官方鏈接

4、 setData調(diào)用頻率

setData接口的調(diào)用涉及邏輯層與渲染層間的線程通信,通信過(guò)于頻繁可能導(dǎo)致處理隊(duì)列阻塞,界面渲染不及時(shí)而導(dǎo)致卡頓,應(yīng)避免無(wú)用的頻繁調(diào)用。

得分條件:每秒調(diào)用setData的次數(shù)不超過(guò) 20 次

5、 setData數(shù)據(jù)大小

由于小程序運(yùn)行邏輯線程與渲染線程之上,setData的調(diào)用會(huì)把數(shù)據(jù)從邏輯層傳到渲染層,數(shù)據(jù)太大會(huì)增加通信時(shí)間。

得分條件:setData的數(shù)據(jù)在jsON.stringify后不超過(guò) 256KB

6、 WXML節(jié)點(diǎn)數(shù)

建議一個(gè)頁(yè)面使用少于 1000 個(gè) WXML 節(jié)點(diǎn),節(jié)點(diǎn)樹(shù)深度少于 30 層,子節(jié)點(diǎn)數(shù)不大于 60 個(gè)。一個(gè)太大的 WXML 節(jié)點(diǎn)樹(shù)會(huì)增加內(nèi)存的使用,樣式重排時(shí)間也會(huì)更長(zhǎng),影響體驗(yàn)。

得分條件:頁(yè)面WXML節(jié)點(diǎn)少于 1000 個(gè),節(jié)點(diǎn)樹(shù)深度少于 30 層,子節(jié)點(diǎn)數(shù)不大于 60 個(gè)。

二、列表頁(yè)面優(yōu)化

1、減少不必要的標(biāo)簽嵌套

由上面的測(cè)試dome可知,在不影響代碼運(yùn)行和可讀性的前提下,盡量減少標(biāo)簽的嵌套,可以大幅的增加頁(yè)面數(shù)據(jù)的列表?xiàng)l數(shù),畢竟公司不是按代碼行數(shù)發(fā)工資的。如果你的列表數(shù)據(jù)量有限,可以用這種方法來(lái)增加列表渲染條數(shù)。如果數(shù)據(jù)量很大,再怎么精簡(jiǎn)也超過(guò)2萬(wàn)的節(jié)點(diǎn),這個(gè)方法則不適用。

2、優(yōu)化setData的使用

如圖五所示,小程序setDate的性能會(huì)受到setData數(shù)據(jù)量大小和調(diào)用頻率限制。所以要圍繞減少每一次setData數(shù)據(jù)量大小,降低setData調(diào)用頻率進(jìn)行優(yōu)化。

(1)刪除冗余字段 后端的同事經(jīng)常把數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出就直接返回給前端,不經(jīng)過(guò)任何處理,所以會(huì)導(dǎo)致數(shù)據(jù)大量的冗余,很多字段根本用不到,我們需要把這些字段刪除,減少setDate的數(shù)據(jù)大小。

(2)setData的進(jìn)階用法 通常,我們對(duì)data中數(shù)據(jù)的增刪改操作,是把原來(lái)的數(shù)據(jù)取出,處理,然后用setData整體去更新,比如我們列表中使用到的上拉加載更多,需要往listData尾部添加數(shù)據(jù):

  newList=[{...},{...}];   this.setData({     listData:[...this.data.listData,...newList]   })

這樣會(huì)導(dǎo)致 setDate的數(shù)據(jù)量越來(lái)越大,頁(yè)面也越來(lái)越卡。

setDate的正確使用姿勢(shì)

  • setDate修改數(shù)據(jù)

比如我們要修改數(shù)組listData第一個(gè)元素的isDisplay屬性,我們可以這樣操作:

let index=0;  this.setData({     [`listData[${index}].isDisplay`]:false,  })

如果我們想同時(shí)修改數(shù)組listData中下標(biāo)從0到9的元素的isDisplay屬性,那要如何處理呢?你可能會(huì)想到用for循環(huán)來(lái)執(zhí)行setData:

  for(let index=0;index<10;index++){     this.setData({        [`listData[${index}].isDisplay`]:false,     })  }

那么這樣就會(huì)導(dǎo)致另外一個(gè)問(wèn)題,那就是listData的調(diào)用過(guò)于頻繁,也會(huì)導(dǎo)致性能問(wèn)題,正確的處理方式是先把要修改的數(shù)據(jù)先收集起來(lái),然后調(diào)用setData一次處理完成:

  let changeData={};  for(let index=0;index<10;index++){      changeData[[`listData[${index}].isDisplay`]]=false;  }  this.setData(changeData);

這樣我們就把數(shù)組listData中下標(biāo)從0到9的元素的isDisplay屬性改成了false。

  • setDate往數(shù)組末尾添加數(shù)據(jù)

如果只添加一條數(shù)據(jù)

  let newData={...};  this.setData({    [`listData[${this.data.listData.length}]`]:newData  })

如果是添加多條數(shù)據(jù)

  let newData=[{...},{...},{...},{...},{...},{...}];  let changeData={};  let index=this.data.listData.length    newData.forEach((item) => {        changeData['listData[' + (index++) + ']'] = item //賦值,索引遞增    })   this.setData(changeData)

至于刪除操作,還沒(méi)有找到更好的方法,不知道大家有什么方法可以分享嗎?

三、使用自定義組件

可以把列表的一行或者多行封裝到自定義組件里,在列表頁(yè)使用一個(gè)組件,只算一個(gè)節(jié)點(diǎn),這樣你的列表能渲染的數(shù)據(jù)可以成倍數(shù)的增加。

組件內(nèi)的節(jié)點(diǎn)數(shù)也是有限制的,但是你可以一層層嵌套組件實(shí)現(xiàn)列表的無(wú)限加載,如果你不怕麻煩的話

四、使用虛擬列表

經(jīng)過(guò)上面的一系列操作后,列表的性能會(huì)得到很大的提升,但是如果數(shù)據(jù)量實(shí)在太大,wxml節(jié)點(diǎn)數(shù)也會(huì)超出限制,導(dǎo)致頁(yè)面發(fā)生錯(cuò)誤。

我們的處理方法是使用虛擬列表,頁(yè)面只渲染當(dāng)前可視區(qū)域以及可視區(qū)域上下若干條數(shù)據(jù)的節(jié)點(diǎn),通過(guò)isDisplay控制節(jié)點(diǎn)的渲染。

  • 可視區(qū)域上方:above

  • 可視區(qū)域:screen

  • 可視區(qū)域下方:below


1、listData數(shù)組的結(jié)構(gòu)

使用二維數(shù)組,因?yàn)槿绻且痪S數(shù)組,頁(yè)面滾動(dòng)需要用setData設(shè)置大量的元素isDispaly屬性來(lái)控制列表的的渲染。而二維數(shù)組可以這可以一次調(diào)用setData控制十條,二十條甚至更多的數(shù)據(jù)的渲染。

listData:[   {    isDisplay:true,    itemList:[{          qus:'下面哪位是劉發(fā)財(cái)女朋友?',          answerA:'劉亦菲',          answerB:'迪麗熱巴',          answerC:'齋藤飛鳥(niǎo)',          answerD:'花澤香菜',       }      .......//二維數(shù)組中的條數(shù)根據(jù)項(xiàng)目實(shí)際情況     ]   }]

2、必要的參數(shù)

 data{       itemHeight:4520,//列表第一層dom高度,單位為rpx       itemPxHeight:'',//轉(zhuǎn)化為px高度,因?yàn)樾〕绦颢@取的滾動(dòng)條高度單位為px       aboveShowIndex:0,//已渲染數(shù)據(jù)的第一條的Index       belowShowNum:0,//顯示區(qū)域下方隱藏的條數(shù)       oldSrollTop:0,//記錄上一次滾動(dòng)的滾動(dòng)條高度,判斷滾動(dòng)方向       prepareNum:5,//可視區(qū)域上下方要渲染的數(shù)量       throttleTime:200//滾動(dòng)事件節(jié)流的時(shí)間,單位ms   }

3、wxml的dom結(jié)構(gòu)

 <!-- above區(qū)域的 -->    <view class="above-box" style="height:{{aboveShowIndex*itemHeight}}rpx"> </view>   <!-- 實(shí)際渲染的區(qū)域的 -->    <view wx:for="{{listData}}" class="first-item"  wx:for-index="i" wx:for-item="firstItem" wx:key="i" wx:if="{{firstItem.isDisplay}}">        <view class="item-list" wx:for="{{firstItem.itemList}}" wx:key="index">           <view>{{item.qus}}</view>           <view class="answer-list">                <view>A. {{item.answerA}}</view>                <view>B. {{item.answerB}}</view>                <view>C. {{item.answerC}}</view>                <view>D. {{item.answerD}}</view>           </view>        </view>       </view>    <!-- below區(qū)域的 -->    <view  class="below-box" style="height:{{belowShowNum*itemHeight}}rpx"> </view>

4、獲取列表第一層dom的px高度

  let query = wx.createSelectorQuery();  query.select('.content').boundingClientRect(rect=>{    let clientWidth = rect.width;    let ratio = 750 / clientWidth;    this.setData({      itemPxHeight:Math.floor(this.data.itemHeight/ratio),     })   }).exec();

5、頁(yè)面滾動(dòng)時(shí)間節(jié)流

function throttle(fn){  let valid = true  return function() {     if(!valid){         return false      }     // 工作時(shí)間,執(zhí)行函數(shù)并且在間隔期內(nèi)把狀態(tài)位設(shè)為無(wú)效      valid = false      setTimeout(() => {          fn.call(this,arguments);          valid = true;      }, this.data.throttleTime)  }}

6、頁(yè)面滾動(dòng)事件處理

   onPageScroll:throttle(function(e){    let scrollTop=e[0].scrollTop;//滾動(dòng)條高度    let itemNum=Math.floor(scrollTop/this.data.itemPxHeight);//計(jì)算出可視區(qū)域的數(shù)據(jù)Index    let clearindex=itemNum-this.data.prepareNum+1;//滑動(dòng)后需要渲染數(shù)據(jù)第一條的index    let oldSrollTop=this.data.oldSrollTop;//滾動(dòng)前的scrotop,用于判斷滾動(dòng)的方向    let aboveShowIndex=this.data.aboveShowIndex;//獲取已渲染數(shù)據(jù)第一條的index    let listDataLen=this.data.listData.length;    let changeData={}  //向下滾動(dòng)    if(scrollTop-oldSrollTop>0){        if(clearindex>0){         //滾動(dòng)后需要變更的條數(shù)          for(let i=aboveShowIndex;i<clearindex;i++){                   changeData[[`listData[${i}].isDisplay`]]=false;                let belowShowIndex=i+2*this.data.prepareNum;                if(i+2*this.data.prepareNum<listDataLen){                  changeData[[`listData[${belowShowIndex}].isDisplay`]]=true;                 }          }           }        }else{//向上滾動(dòng)        if(clearindex>=0){         let changeData={}         for(let i=aboveShowIndex-1;i>=clearindex;i--){           let belowShowIndex=i+2*this.data.prepareNum           if(i+2*this.data.prepareNum<=listDataLen-1){            changeData[[`listData[${belowShowIndex}].isDisplay`]]=false;           }           changeData[[`listData[${i}].isDisplay`]]=true;         }          }else{          if(aboveShowIndex>0){            for(let i=0;i<aboveShowIndex;i++){              this.setData({                [`listData[${i}].isDisplay`]:true,              })            }          }        }          }    clearindex=clearindex>0?clearindex:0    if(clearindex>=0&&!(clearindex>0&&clearindex==this.data.aboveShowIndex)){      changeData.aboveShowIndex=clearindex;      let belowShowNum=this.data.listData.length-(2*this.data.prepareNum+clearindex)      belowShowNum=belowShowNum>0?belowShowNum:0      if(belowShowNum>=0){        changeData.belowShowNum=belowShowNum      }      this.setData(changeData)    }    this.setData({      oldSrollTop:scrollTop    })  }),

經(jīng)過(guò)上面的處理后,頁(yè)面的wxml節(jié)點(diǎn)數(shù)量相對(duì)穩(wěn)定,可能因?yàn)榭梢晠^(qū)域數(shù)據(jù)的index計(jì)算誤差,頁(yè)面渲染的數(shù)據(jù)有小幅度的浮動(dòng),但是已經(jīng)完全不會(huì)超過(guò)小程序頁(yè)面的節(jié)點(diǎn)數(shù)量的限制。

理論上100萬(wàn)條數(shù)據(jù)的列表也不會(huì)有問(wèn)題,只要你有耐心和精力一直劃列表加載這么多數(shù)據(jù)。

7、待優(yōu)化事項(xiàng)

  • 列表每一行的高度需要固定,不然會(huì)導(dǎo)致可視區(qū)域數(shù)據(jù)的index的計(jì)算出現(xiàn)誤差

  • 渲染玩列表后往回來(lái)列表,如果手速過(guò)快,會(huì)導(dǎo)致above,below區(qū)域的數(shù)據(jù)渲染不過(guò)來(lái),會(huì)出現(xiàn)短暫的白屏,白屏問(wèn)題可以調(diào)整 prepareNum, throttleTime兩個(gè)參數(shù)改善,但是不能完全解決(經(jīng)過(guò)測(cè)試對(duì)比發(fā)現(xiàn),即使不對(duì)列表進(jìn)行任何處理,滑動(dòng)速度過(guò)快也會(huì)發(fā)生短暫白屏的情況)。

  • 如果列表中有圖片,above,below區(qū)域重新渲染時(shí),圖片雖然以經(jīng)緩存在本地,不需要重新去服務(wù)器請(qǐng)求,但是重新渲染還是需要時(shí)間,尤其當(dāng)你手速特別快時(shí)。可以根據(jù)上面的思路, isDisplay時(shí)只銷(xiāo)毀非<image>的節(jié)點(diǎn),這樣重新渲染就不需要渲染圖片,但是這樣節(jié)點(diǎn)數(shù)還是會(huì)增加,不過(guò)應(yīng)該能滿(mǎn)足大部分項(xiàng)目需求了,看自己項(xiàng)目怎么取舍。


五、使用自定義組件和虛擬列表的對(duì)比。

雖然不知道為什么,但是直覺(jué)告訴我使用自定義組件性能會(huì)相對(duì)差一點(diǎn)。為了對(duì)比兩種方法的優(yōu)劣,使用了Trace工具對(duì)一個(gè)5000條帶圖片數(shù)據(jù)進(jìn)行了性能測(cè)試。

內(nèi)存占用對(duì)比:

自定義組件內(nèi)存占用情況:


虛擬列表內(nèi)存占用情況:


對(duì)比可以看出,因?yàn)榻M件在上拉加載時(shí),組件是沒(méi)有銷(xiāo)毀的,導(dǎo)致數(shù)據(jù)量逐漸增多。而虛擬列表在增加數(shù)據(jù)的同時(shí),也會(huì)銷(xiāo)毀相同數(shù)量的數(shù)據(jù),所以?xún)?nèi)存占比會(huì)穩(wěn)定在一個(gè)數(shù)量。

具體到這個(gè)測(cè)試dome,5000條數(shù)據(jù)使用自定義組件,最后占用2000MB的內(nèi)存,而虛擬列表穩(wěn)定在700MB。

setData后重新渲染所用的時(shí)間對(duì)比:

自定義組件重新渲染耗時(shí):


虛擬列表重新渲染耗時(shí):


從測(cè)試結(jié)果可以看出,無(wú)論是耗時(shí)的次數(shù)分布,還是最大耗時(shí),最小耗時(shí),虛擬列表都優(yōu)于自定義組件

最后附上虛擬列表的github地址:https://github.com/lmn1919/wechatApp-dome/tree/main/pages/list-scroll-view

如果對(duì)您有幫助,記得給個(gè)贊哦。


學(xué)習(xí)更多技能

請(qǐng)點(diǎn)擊下方公眾號(hào)

瀏覽 73
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 狠狠干天天日| 亚洲免费a| 狠狠狠狠狠狠| 国产精品一卡二卡三卡| 欧美高潮喷水| 欧美色大香蕉| 91三级在线观看| 乱伦视频网| 俄罗斯老熟妇与子伦| 91色噜噜狠狠色婷婷| 成年人免费黄色视频| 911精品人妻一区二区三区A片| 国产系列每日更新| 成人高清无码在线| 91麻豆精品成人一区二区| 日本老女人视频| 美国久久久| 欧美AAAAAAAAAA特级| 日本A片视频| 色丁香在线| 亚洲无码影片| 操碰人人操| 久久精品视频99| va色婷婷亚洲在线| 大香蕉伊人在线网| 国产成人tv| 超碰97资源| 久久精品视频在线免费观看| 日韩欧美一| 欧美成人一级a片| 欧美亚洲日韩国产| 国产精品偷拍视频| 色五月婷婷五月| 男女一区| 一级A片60分钟免费看| 99精品99| 免费无码成人片在线观看在线 | 亚洲欧美日韩久久| 成人毛片视频网站| 欧美草逼视频| 一区视频免费观看| 国产小视频在线观看| 亚洲精品免费在线观看| 成人aV免费观看| 欧美婷婷综合| 中国黄色一级A片| 亚州在线视频| 男人的天堂视频在线| 中文无码熟妇人妻AV在线| 在线观看免费黄网站| 久久精品一区二区| 国产无码小视频| 鲁一鲁视频| 91亚洲精品久久久久久久久久久久| 精品国产午夜福利| 激情AV在线| 91综合视频在线播放| 人人射| 十八毛片| 91精品国产一区二区三区四区大 | 黑人精品XXX一区一二区| 狠狠干网| 中文字幕在线播放视频| 操逼第二页| 一区二区三区免费看| 少妇搡BBBB搡BBB搡18禁| 江苏妇搡BBBB搡BBB| 欧美精品亚洲| 在线看片国产| 成人三级在线观看| 男女无套在线观看免费| 欧美成人社区| 最新无码视频| 91蜜桃传媒在线观看| 影音先锋av色| 天天操b| 一级香蕉视频| 亚洲色777| 97在线观看免费| 手机看片亚洲| 精品AV无码一区二区三区| 东京热在线免费观看| 在线观看精品视频| 欧美一二三区黄色免费视屏| 亚洲在线视频免费观看| 欧美69p| 精品AV无码一区二区三区| 国产精品自拍小视频| 人人摸人人看人人草| 最新中文字幕一区| 97色在线| 免费69视频看片| 麻豆毛片| 九九热在线视频| 国产又爽又黄免费网站在线| 青娱乐一级无码| 成人无码区免费AV片| 狠狠干网站| 2018天天操天天干| 超碰人人在线| 一曲二曲三曲在线观看中文字| 国产成人无码一区二区在线播放| 蜜桃视频91| 麻豆精品久久久久久久99蜜桃| 国产精品porn| 操屄视频免费观看| 小H片在线观看| 欧美成人精品一区二区三区| 欧美搡BBBB搡BBB| 国产3p绿帽骚妻视频| 欧美三级网站| 国产又粗又长的视频| AA丁香综合激情| 欧美日韩国产成人在线观看| 日韩经典视频在线播放| 亚洲欧美在线观看视频| 成人大片在线观看| 99精品99| 特级毛片av| 中文字幕在线观看网站| A级片在线观看| 久久精品国产亚洲AV成人婷婷 | 人妻无码精品久久人妻成人| sesese| 99成人国产精品视频| 四虎成人无码| 天堂va欧美ⅴa亚洲va一夜| 污污污污污www网站免费民国| 在线中文字幕网站| JiZZjiZZ亚洲成熟熟妇| 京东热av| 婷婷五月综合中文字幕| 91操视频| 暗呦罗莉精品一区二区| 97干干| 最近中文字幕mv第三季歌词 | 荫蒂添到高潮免费视频| 久久思热国产| 肥臀AV在线| 你懂的视频在线| 一级av片| 91干干干| 日日躁夜夜躁| 久久综合色色| 久久综合伊人7777777| 色天使青青草| 无码一区二区三区四区五区| www.99爱| 精品免费| 黄片在线免费播放| 中文字幕日韩成人| 国产传媒一区| 91成人一区二区| 猫咪亚洲AV成人无码电影| 丁香婷婷色五月激情综合三级三级片欧美日韩国 | 国产黄片一区二区| 亚洲三区视频| 人妻被午夜福利AV| 精品视频在线播放| 最近中文字幕免费| 91免费视频观看| 成人在线免费网站| 一本到无码| 久久久高清无码| 精品人妻一区二区免费蜜桃| av影音先锋在线| 老熟女--91XX| 99热在线观看精品| 亚洲综合免费观看高清完整| 操久久| 成人在线视频免费观看| 青娱乐国产视频| 一本色道久久无码人妻精品69| 精品一区二区三区蜜桃臀www | 国产绿奴09-01| 91麻豆精品成人一区二区| 日本免费a片| 亚洲有码人妻| 无码中文字幕在线观看| 天天色天天色天天色| 六月婷婷五月| 黄色国产在线| 国产成人精品国内自产拍免费看| 狠狠爱av| 免费中文视频| 日韩激情无码一区二区| 综合大香蕉| 日韩AV无码成人精品| 国产女人与禽zOz0性| 人妖黃色一級A片| 黄色日本视频| 日韩黄色视频| 亚洲无码中文字幕在线播放| 国产天堂网| 五月天成人小说| 国产九九在线视频| 三级片高清无码| 中文字字幕在线中文| 亚洲天堂网在线视频| 伊人国产视频| AA毛片| 一区二区无码区| av网站免费看| 亚洲AV无码成人精品区大猫| 国产黄色小电影| 人人肏人人摸| 操逼视频免费在线观看| 中文字幕一区二区三区精华液| 天天干天天干天天日| 无码电影网站| 影音先锋成人在线| 亚洲无码精品视频| 三级AV在线免费观看| 亚洲91黄色片| 广西少妇BBwBBwBBw| 麻豆传媒一区| 精品视频免费在线| 免费三级片网址| 一级性爱毛片| 偷拍亚洲天堂| 国产精品93333333| 亚洲无码视频在线看| 91香蕉在线观看| 麻豆av在线| 国产一级黄色| 欧美色大香蕉| 91精品国产乱码久久久| 少妇人妻在线| 伊人五月天| 免费日韩毛片| 国产成人高清无码| 大香蕉日逼| 91青青| 无码中文字幕高清| 2025天天操夜夜操| 国产精品自产拍| 免费三级片网址| 国产精品成人免费视频| 亚洲色图成人网| 狠狠干免费视频| 亚洲秘无码一区二区三区观看| 殴美色色网| 五月婷婷啪| 国产美女自拍| 少妇激情av| 中文字幕日韩高清| 人人操人人摸人人| 97人妻| 国产AAA片| 精品国内视频| NP玩烂了公用爽灌满视频播放 | 欧美在线v| 精品少妇人妻| 高清无码在线免费观看| 日韩毛片在线视频x| 亚洲欧美在线视频免费| 西西特级WWW444无码| www.久久久久| 91视频网站在线观看| 欧美性爱操逼视频| 亚洲AV无码成人精品区h麻豆| 大香蕉在8线| 亚洲欧美成人在线视频| 无码理论片| 肏屄视频免费观看| 日韩视频在线免费观看| 77q视频| 九久热| 日韩三级成人| 国产乱婬AAAA片视频| AA黄色电影| 亚洲无码一级视频| 亚洲无码在线视频观看| 亚洲,制服,综合,中文| 无码天堂| 四川性BBB搡BBB爽爽爽小说 | 国产视频成人| 美女白嫩嫩大BBB欣赏| 国产不卡在线| 性爱视频91| 另类老妇极品BBWBBw| 免费日韩视频| 中文字幕在线观看亚洲| 国产精品无码久久久久成人app| 99国产综合| 欧美高潮喷水| 欧美爱爱网| 怡红院成人AV| 久久久精品久久久| 精品国产三级片| 成人操B视频| 成人在线观看网| 国产一级a毛一级a毛观看视频网站www.jn | 在线观看18s| 欧美性爱五月天| 国产一级在线观看| 久久久久久亚洲AV黄床| 成人久久久久| 日日夜夜干| 欧美一级成人片| 天堂va欧美va亚洲va在线| 日韩无码一级片| 嫩BBB槡BBBB槡BBB小号| 欧美伊人久久| 五月婷婷在线视频| 亚洲视频在线观看播放| 嘉兴少妇按摩69XX| 日韩欧美黄色| 色五月婷婷小说| 色色热热| 男女日皮视频| AV资源在线免费观看| 一本色道久久综合狠狠躁的推荐| 在线观看一区| 国产成人亚洲精品| 91九色在线观看| 国产精品外围| 国产精品无码在线播放| 91香蕉视频在线播放| 亚洲中文字幕免费观看视频| 国产色视频一区二区三区QQ号| 黄色视频在线观看网站| 日本一级婬片A片免费播放一| 国产精品911| 色婷婷五月天| 成人A∨| 夜夜撸视频| 中文字幕在线观看a| 中文字幕+乱码+中文乱码视频在线观看| 亚洲精品久久久久久久久豆丁网 | 久久影院三级片| 日韩亚洲欧美在线| 亚洲中文字幕在线观看视频| 国产一区二区三区免费观看| 国产美女自慰网站| 青青日逼| 五月天婷婷综合| 日本亚洲欧洲免费| 丁香五月网站| 国产欧美一区二区人妻喷水| 国产亚洲色婷婷久久99精品| 国产熟妇搡BBBB搡BBBB毛片 | 97超碰人人摸| 激情性爱五月天| 男女AV在线免费观看| 97超碰资源| 豆花网无码视频观看| 黑人巨粗进入疼哭A片| 日韩一级在线| 欧美综合亚洲| 青娱乐青青草| 天天干天天日| 亚洲影音| 国产精品无码激情| 亚州成熟少妇视频在线观看| 肏屄视频在线看| www香蕉成人片com| 99久久亚洲精品日本无码| 成人伊人大香蕉| 天天视频亚洲| 无码乱伦视频| 成人中文字幕在线视频| 激情AV| 国产成人三级片在线观看| 99一区二区| 成人做爱黄片| 激情性爱五月天| 色婷婷香蕉| 人人干人人摸人人操| 国产婬片lA片www777| 久久久久无码精品亚洲日韩| 波多一区| 激情网站在线观看| 日逼视频网| 中文人妻第9页| 成人免费在线网站| 三级片久久| 丁香五月激情啪啪啪| www一个人免费观看视频www| 亚洲Av秘无码一区二区| 成人在线视频播放| 婷婷五月天电影网| 天天干天天日天天干| 日韩欧美精品在线| 日韩性爱网站| 日欧无码| 四色五月婷婷| 国产资源av| 亚洲91成人| 午夜嘿嘿| 亚洲毛片亚洲毛片亚洲毛片| 国产又色又爽又黄又免费| 亚洲无码中文字幕在线观看| www.jiujiujiu| 欧美猛交| 成人午夜小电影| 一二三四在线视频| 亚洲色图欧美| 人人摸人人射| 性色在线| 欧美午夜乱伦电影| 久久久人妻| 国产精品伦子伦免费视频| 五月天激情电影| 性综合网| 亚洲国产一区二区在线| 欧美三级精品| 亚洲熟女一区二区| 伊人婷婷色香综合| 久久精品一区二区三区蜜芽的特点 | 久久免费毛片| 天天干天天操天天| AV网站在线免费观看| 日韩极品视频在线| 91香蕉视频在线播放| 精品视频在线观看免费| 人人人操人人| 伊人91| 天天日夜夜拍| 日韩操逼图| 欧美狠狠操| a√天堂中文在线8| 四川妇搡BBBB搡BBBB| 99久久精品国产一区色| 亚洲男人的天堂视频网在线观看+720P | 一个人看的www日本高清视频| 一级黄色视频日逼片| 亚洲无码视频网站| 五月丁香婷婷基地| 人成免费网站| 少妇大战28厘米黑人| 久草福利网| 亚洲中文字幕成人| 人妻在线你懂的| av天堂中文字幕| 色国产在线视频| 亚洲日韩国产AV| 香蕉久草| 五月丁香亭亭| 久久亚洲精品视频| 香蕉av在线播放| 五月婷婷激情网| 久久99久久99| 中文资源在线a| 日都一级A片| 免费看黃色AAAAAA片| 免费无码婬片AAAA片老婦| 色国产视频| 日韩国产欧美精品一区| 国产免费麻豆| 日韩一级二级三级| 亚洲天堂视频网站| 欧美性爱一级视频| 免费看操逼视频| jizz国产精品| 无码免费在线观看视频| 在线免费高清无码| 精品一区二区三区三区| 特级西西WWW444人体聚色| 毛片导航| 91高潮久久久久久久| 午夜亚洲福利视频| 国产强伦轩免费视频在线| 亚洲最新中文字幕| 91大神在线观看入口| 一级片在线免费看| 日本久久高清| 青青国产| 香蕉久久网| 七六十路の高齢熟妇无码| 日韩一区二区高清无码| 久久久久久99| 亚洲日韩中文字幕| www.水蜜桃| 成人性爱av| 久久大屌| 日韩精品在线视频观看| 日本色中文字幕| 91牛视频| 在线观看免费黄片| 中文视频在线观看| 久99视频| 大肉大捧视频免费观看| 色九月婷婷| 国产精品HongKong麻豆| 成人视频免费在线观看| 精品1234| 亚洲AV成人精品一区二区三区| 乱伦五月| 日韩在线观看中文字幕| 国产精品自产拍| 日韩在线观看视频免费| 日本高清视频网站网wwwwww| 国产免费无码一区二区| AV天堂亚洲| 激情视频在线免费观看| 一级Aa视频免费看| 伊人免费在线| 国产黄片一区二区| 欧美高清一区二区| 日韩v亚洲| 一级无码A片| www.青青草视频| 97人妻| 日韩在线视频观看| 在线观看免费无码视频| 国产一级免费| 中文在线a√在线8| 五月婷婷激情综合| 亚洲精品秘一区二区三小| 国产高潮白浆喷| 七十路の高齢熟女千代子下载| 大地影视官网第三页入口| 亚洲免费视频网站| 欧美日韩视频免费观看| 毛片学生妹| 黄色一级爱爱| 亚洲日韩中文无码| 国产精品9999久久久久仙踪林| 无码a区天堂| 麻豆三级| www.亚洲无码| 精品无码一区二区| 好想被c秘好爽n网址| 亚洲成人一区二区| 欧美一区二区三区视频| 在线一级片| 免费A片在线观看| 亚洲无码影音先锋| 国产毛片网| 先锋影音资源网站| 久久久久久性爱| 操屄视频在线| 91日日夜夜| 无码毛片一区二区三区人口| 天天操人妻| 亚洲天堂成人网| 欧美中出| 久久无码一区二区三区| 精品国产91| 欧美性精品| 青青操在线观看| 黄色片免费| 三级视频网站| 成人av黄色三级片在线观看| 欧美综合亚洲图片综合区| 一级做a爰片毛片A片| 午夜亚洲AV永久无码精品蜜芽| 成人a片在线免费观看| 伊人久久大香线蕉| 亚洲av大片| 日韩视频中文字幕在线| 嫩BBB槡BBBB槡BBBB免费视频| 免费黄色视频网站在线观看| 国产操逼图| 一区二区无码高清| 亚洲国产无码在线| 国产激情视频在线播放| 狠狠草视频| 中文字幕一区二区三区的重点问题| 91精品久久人妻一区二区夜夜夜| 樱桃av| 一级黄色视频日逼片| 日屄免费视频| 操人在线观看| 欧美成人电影在线观看| BBB搡BBB搡BBB搡BBB| 中国无码视频| 黄色一级片网站| 天堂在线免费视频| 中文一区二区| 天天爽夜夜爽AA片免费| 国产噜噜噜噜噜久久久久久久久| AAA片视频| 怡红院成人av| 无码人妻在线| 91成人免费电影| 天天爽日日澡AAAA片| 黄色无無| 手机无码在线播放| 九一无码| 一级a一级a爰片免费| 日韩操逼网站| 久草这里只有精品| 青娱乐三级在线免| 91蜜臀在线| 国产精品999999| 日韩视频中文| 一区二区免费看| 日本黄色视频在线观看| 91无码一区二区三区在线| 久久久偷拍视频| 亚洲欧美天堂| 五月婷婷色综合| 久热精品视频在线观看| 99视频在线| 精品交换一区二区三区无码| 天天草视频| 可以免费看AV的网站| 免费看无码一级A片在线播放| 日韩人妻无码精品| 无码日韩电影| 色婷视频| 水蜜桃在线观看视频| 国产成人在线播放| 在线成人视频网站大香蕉在线网站 | 一级大片| 淫秽视频免费看| 亚洲无码一区二区三区妃光| 性爱视频久久| www.99视频| 丁香五月天婷婷| 亚洲香蕉国产| 成人网站欧美| 北京熟妇槡BBBB槡BBBB| 91视频导航| 福利视频中文字幕| 日韩精品视频一区二区三区| 五月丁香婷中文| 国产亚洲视频完整在线观看 | 美女久草| 大香蕉最新视频| 亚洲一级黄色视频| 奇米久久| Www.黄色| A片黄色电影网站| 操碰视频| 亚洲最新无码视频| 日本aa视频| 狠狠干免费视频| 亚洲无码在线观看免费| 黄色在线播放| 国产精品卡一卡二| 成人做爰免费网站2023| 欧美色视| 国产操逼视频网站| 苗条一区小视频| 屁屁影院CCYYCOM发布地| 特大妓女BBwBBWBBw| 91豆花视频18| 毛片A片免费看| 蜜桃视频在线入口www| 一道本在线| 蜜桃AV在线观看| 被黑人猛躁10次高潮视频| 99精品在线观看| AV资源在线免费观看| 在线亚洲观看| 健身房被教练3p喷水了| 加勒比人妻| 在线观看黄网| 99A片| 97人妻精品一区二区三区图片| 久久久国产精品黄毛片| 在线A片免费观看| 风流老熟女一区二区三区| 91aaa在线观看| 黄色电影一区二区三区| 蜜桃av秘无码一区三| 亚洲人妻中文字幕| 亚洲综合99| 日韩激情片| 欧美在线成人网| 91超碰免费在线| 一道本在线视频| 亚洲国产中文字幕在线播放| 国产av一级片| 曰本精品综合网在线| 国产成人精品777777| 天天插天天插| 亚洲综合一区二区三区| 北条麻妃无码中文| 亚洲国产成人在线| av午夜激情| 青青操在线视频| 97超碰成人| 日韩A片在线观看| 日本中文不卡| jjzz亚洲| 国产AV一卡| 能看的av网站| 国产激情电影| 手机在线看A片| 亚洲一区欧美二区gay| 中文字幕免费AV| 中文字幕乱妇无码Av在线| 天天撸天天日| 亚洲无码在线免费观看视频| 国产精品免费久久| 爱逼AV| 91av一区二区| 日韩中文字幕不卡| 中文字幕精品一区久久久久| 亚欧久久| 51亚洲精品| 免费在线A| 国产精品操逼网站| 黄片免费视频在线观看| 伊人黄色网| 一区二区三区四区免费观看| 高清无码一区二区在线| 精品999| 霸道总裁雷总各种姿势白浆爱情岛论坛 | 天天人人精品| 日本在线不卡视频| 草比视频| 成人黃色A片免费看| 巜人妻初尝按摩师BD中字| 亚洲午夜激情电影| 免费a视频| 婷婷精品免费| 久热伊人| 神马午夜福利影院| 成人日韩| 青青色视频| 国产精品色在线回看| 日韩婬乱片A片AAA真人视频| 国产免费观看av| 超级人人操| 综合视频一区| 亚洲A片在线观看| 国产一区二区不卡亚洲涩情| 日韩一页| 俺来俺也去www色在线观看| 香蕉国产AV| 北条麻妃无码一区二区| 国产一级A片免费看| 中文av在线播放| a免费在线| 大香蕉啪啪| 懂色av懂色av粉嫩av无码 | 精品黄色片| 麻妃无码| 亚洲艹| 久久成人网豆花视频| 国产精品色情A级片| 国产熟妇毛多久久久久一区| 青娱乐A片| 无码免费观看视频| 欧美婬乱片A片AAA毛片地址| 日韩在线欧美在线| 一级在线| 蜜桃传媒在线播放| 海滩AV黑人| 亚洲无码在线免费视频| 超碰在线观看免费版| 怡春院免费视频| 国产欧美在线视频| 日韩性生活| 中文无码av| 天天日天天日天天干| 国产免费性爱视频| 高潮喷水在线观看| 影音av资源| 日韩bbbb| 亚洲免费观看高清| 69er小视频| 婷婷少妇激情| 中文字幕三区| 综合色婷婷一区二区亚洲欧美国产| 中文字幕精品三区无码| 日韩A片一级无码免费蜜桃| 亚洲秘无码一区二区三区蜜桃中文 | 久久久婷婷五月亚洲国产精品| 欧美操操| 乱子伦国产精品www| 高潮91PORN蝌蚪九色| 精品成人| 亚洲精品国产成人综合久久久久久久久| 国产成人秘在线观看免费网站 | AV黄片| 成人视频在线观看黄色18| 四虎影成人精品A片| 人妻无码A| 国产成人毛片| 婷婷亚洲天堂| 精品国产乱码| 国产特黄| 影音先锋三级| 无码一区二区在线观看| 国产亚洲无码激情前后夹击| 一本一道久久a久久精品综合| 久久嫩草精品久久久久| av亚洲波多野结衣白嫩水多波| 日韩三级AV在线观看| 黄色成人视频| 十八毛片| 俺也去官网| 高清色视频| 国产日韩欧美在线观看| 男人天堂2024| 亚洲第一大网站| 国产精品美女久久久久久久久| 91麻豆福利在线| 国产天堂在线| 另类老妇奶BBBBwBB| 羞羞午夜| 国产日韩欧美久久| 乱伦无码高清麻豆视频一区二区| 国产精品99久久久久的广告情况| 伊人色播| 国产avwww| 97精品人妻一区| 欧美日韩狠狠操在线观看视频| 精精品人妻一区二区三区| 日一日干一干| 奇米无码| 超碰人人人人人人人人| 豆花网无码视频观看| 人妻无码中文字幕免费视频蜜桃| 欧美三级精品| 日韩欧美操逼视频| 日本天堂在线视频| 亚洲免费观看高清完整| 麻豆91网站| 中文字幕精品无码亚| 99成人国产精品视频| 91国语对白| 久久中文娱乐网| 一级大香蕉| 日日操天天| 日韩乱轮小说与视频| 国产激情综合五月久久| 午夜激情视频| 九色一区| 无码人妻精品一区二区三区蜜桃91| 91麻豆福利| 亚洲.www| 欧美精品网| www国产| 人人干人人操人人爽| 大乳奶一级婬片A片| 99精品免费视频| 91超碰在线免费观看| 国产三级午夜理伦三级| 色婷婷国产精品综合在线观看| 亚洲一区翔田千里无码| 欧美v在线观看| 天天日综合网| 少妇69p| 搞搞网日本9| 日本三级片在线| 91五月天| 日韩无码视频一区| 无码h| 91在线无码精品秘入口动作| 激情五月天影院| 无码理论片| 91天天爽| 亚洲中文字幕在线视频播放| 麻豆91蜜桃传媒在线观看| 双腿张开被9个男人调教| 久久思热国产| 影音先锋乱伦电影| 怡春院日韩| 免费AV黄色| 五月丁香花婷婷| 快播激情小说| 99视频精品视频| 日韩中字无码黄片| 九九r在线精品观看视频| 搞AV网| 国产顶级理伦| 国产激情都市一区二区三区欧美 | 国产v欧美| 在线观看www视频| 亚洲视频五区| 日韩啪啪啪网站| 91色逼| 俺也去网站| 久草视频播放| 婷婷精品免费久久| 水蜜桃视频在线| 伊人性爱网| 欧洲亚洲免费视频| 亚洲国产无码在线| 强开小嫩苞一区二区电影| 亚洲成人AV在线播放| 午夜无码人妻AV大片| 在线黄色小视频| 黄色福利在线观看| 欧美日视频| 欧美级毛片一进一出| 妹子干综合| 中文字幕av在线播放| 天天爱天天操| 亚洲成人福利在线| 国产欧美二区综合中文字幕精品一| 影视先锋久久| 精品交换一区二区三区无码| 黄片视频在线免费播放| 日本一区中文字幕| 国产1级a毛a毛1级a毛1级| 亚洲黄色在线看| 亚洲免费成人网| 午夜成人在线视频| 亚洲午夜久久久久久久久红桃| 免费观看黄色片| 精品人妻一区二区三区-国产精品 无码人妻av黄色一区二区三区 | 成人欧美一区二区三区白人|