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

JS基礎(chǔ)進(jìn)階- 同步異步編程和EventLoop底層機(jī)制

開(kāi)發(fā) 前端
本篇通過(guò)幾道面試題,和大家聊聊關(guān)于JS基礎(chǔ)進(jìn)階之同步異步編程和EventLoop底層機(jī)制,希望能夠?qū)δ阌兴鶐椭?/div>

[[389054]]

簡(jiǎn)短的概括:

  • JS中的單線程異步編程
  • EventLoop 事件循環(huán)機(jī)制
  • 宏任務(wù) macrotask [ˈmækroʊ]
  • 微任務(wù) microtask [ˈmaɪkroʊ]
  • JS中的同步異步編程

1、JS是單線程的,怎么達(dá)到異步編程:

1)JS是單線程的,大部分代碼都是同步編程。

2)JS中利用瀏覽器的多線程機(jī)制,基于單線程的EventLoop(事件循環(huán)機(jī)制)實(shí)現(xiàn)出異步的效果。

2、event loop (微任務(wù)與宏任務(wù)):

1)微任務(wù) (microtask):優(yōu)先級(jí)高,并且可以插隊(duì),不是先定義先執(zhí)行。包括:promise.then,async/await [generator],requestAnimationFrame,observer,MutationObserver,setImmediate。

2)宏任務(wù) (macrotask):優(yōu)先級(jí)低,先定義的先執(zhí)行。包括:ajax,setTimeout,setInterval,事件綁定,postMessage,MessageChannel(用于消息通訊)。

3、根據(jù)事件循環(huán)機(jī)制,重新梳理一下流程:

+先找微任務(wù)隊(duì)列,如果微任務(wù)隊(duì)列中有,先從微任務(wù)隊(duì)列中,一般按照存放順序獲取并且去執(zhí)行。

+如果微任務(wù)隊(duì)列中沒(méi)有,則再去宏任務(wù)隊(duì)列中查找,在宏任務(wù)隊(duì)列中,一般是按照誰(shuí)先到達(dá)執(zhí)行的條件,就先把誰(shuí)拿出來(lái)執(zhí)行。

常考面試題:EventLoop事件循環(huán)

🌰 面試題1:

  1. console.log('1') // 1 
  2.  
  3. async function async1() { 
  4.   console.log('2') // 2 
  5.   await setTimeout(() => { 
  6.     console.log('3') // 8 
  7.   }, 0) 
  8.   console.log('4') // 5 
  9.  
  10. setTimeout(() => { 
  11.   console.log('5') // 7 
  12. }, 0) 
  13.  
  14. async1() 
  15.  
  16. new Promise(function (resolve) { 
  17.   console.log('6') // 3 
  18.   resolve() 
  19. }).then(function () { 
  20.   console.log('7') // 6 
  21. }) 
  22.  
  23. console.log('8') // 4 
  24. // 結(jié)果:1 2 6 8 4 7 5 3 

🌰 面試題2:

  1. async function async1() { 
  2.     console.log('async1 start'); // 2 
  3.     await async2(); 
  4.     console.log('async1 end'); // 6 
  5. async function async2() { 
  6.     console.log('async2'); // 3 
  7. console.log('script start'); // 1 
  8. setTimeout(function () { 
  9.     console.log('setTimeout'); // 8 
  10. }, 0) 
  11. async1(); 
  12. new Promise(function (resolve) { 
  13.     console.log('promise1'); // 4 
  14.     resolve(); 
  15. }).then(function () { 
  16.     console.log('promise2'); // 7 
  17. }); 
  18. console.log('script end'); // 5 
  19. //結(jié)果: 
  20. script start 
  21. async1 start 
  22. async2 
  23. promise1 
  24. script end 
  25. async1 end 
  26. promise2 
  27. setTimeout 

🌰 面試題3:

  1. console.log(1); // 1 
  2. setTimeout(() => { 
  3.   console.log(2); // 6 
  4.   Promise.resolve().then(data => { 
  5.      console.log(3); // 7 
  6.   }); 
  7. }); 
  8. new Promise((resolve) => { 
  9.   resolve() 
  10.   console.log(4) // 2 
  11. }).then(() => { 
  12.   console.log(5); // 4 
  13.   setTimeout(() => { 
  14.     console.log(6); // 8 
  15.   }); 
  16. }).then(() => console.log(7)) // 5 
  17. console.log(8); // 3 
  18.  
  19. // 結(jié)果:1, 4, 8, 5, 7, 2, 3, 6 
  20. 1, 4, 8 是同步  5, 7  是微任務(wù)  2 宏任務(wù) 3 微任務(wù)  6 宏任務(wù) 

進(jìn)程/線程

* 核心答案 | 基礎(chǔ)知識(shí)要夯實(shí)

1) 進(jìn)程代表的是一個(gè)程序(瀏覽器開(kāi)一個(gè)頁(yè)卡 (Tab頁(yè)) 就是一個(gè)進(jìn)程);

2) 線程是用來(lái)處理處理進(jìn)程中的具體事物的,如果一個(gè)程序中需要同時(shí)做好多事情,就需要開(kāi)辟好多線程;

3) 一個(gè)線程同時(shí)只能做一件事情;

  • 官方的說(shuō)法
  • 1) 進(jìn)程是cpu資源分配的最小單位(是能擁有資源和獨(dú)立運(yùn)行的最小單位)。
  • 2) 線程是cpu調(diào)度的最小單位(線程是建立在進(jìn)程的基礎(chǔ)上的一次程序運(yùn)行單位,一個(gè)進(jìn)程中可以有多個(gè)線程)。

瀏覽器是多線程的

* 核心答案 | 基礎(chǔ)知識(shí)要夯實(shí)

1) 瀏覽器是多進(jìn)程的;

2) 瀏覽器之所以能夠運(yùn)行,是因?yàn)橄到y(tǒng)給它的進(jìn)程分配了資源(cpu、內(nèi)存);

3) 簡(jiǎn)單點(diǎn)理解,每打開(kāi)一個(gè)Tab頁(yè),就相當(dāng)于創(chuàng)建了一個(gè)獨(dú)立的瀏覽器進(jìn)程;


那么接下來(lái)看看它都包含了哪些線程(列舉一些主要常駐線程)

GUI渲染線程

1) 負(fù)責(zé)渲染瀏覽器界面,解析HTML,CSS,構(gòu)建DOM樹(shù)和RenderObject樹(shù),布局和繪制等。

2) 當(dāng)界面需要重繪(Repaint)或由于某種操作引發(fā)回流(reflow)時(shí),該線程就會(huì)執(zhí)行。

3) 注意,GUI渲染線程與JS引擎線程是互斥的,當(dāng)JS引擎執(zhí)行時(shí)GUI線程會(huì)被掛起(相當(dāng)于被凍結(jié)了),GUI更新會(huì)被保存在一個(gè)隊(duì)列中等到JS引擎空閑時(shí)立即被執(zhí)行。

JS引擎線程

也稱為JS內(nèi)核,負(fù)責(zé)處理Javascript腳本程序。(例如V8引擎)

1) JS引擎線程負(fù)責(zé)解析Javascript腳本,運(yùn)行代碼。

2) JS引擎一直等待著任務(wù)隊(duì)列中任務(wù)的到來(lái),然后加以處理,一個(gè)Tab頁(yè)(renderer進(jìn)程)中無(wú)論什么時(shí)候都只有一個(gè)JS線程在運(yùn)行JS程序。

3) 同樣注意,GUI渲染線程與JS引擎線程是互斥的,所以如果JS執(zhí)行的時(shí)間過(guò)長(zhǎng),這樣就會(huì)造成頁(yè)面的渲染不連貫,導(dǎo)致頁(yè)面渲染加載阻塞。

JS中的單線程異步編程

* 核心答案 | 基礎(chǔ)知識(shí)要夯實(shí)

JS是單線程的:瀏覽器只分配一個(gè)線程用來(lái)渲染JS代碼。

1、JS中的代碼大部分都是“同步編程”:上面的任務(wù)沒(méi)有處理完成,下面的任務(wù)是無(wú)法處理的。

2、但是JS中利用瀏覽器的多線程機(jī)制,可以規(guī)劃出“異步編程”效果。

  • 定時(shí)器
  • ajax/Fetch/跨域 (HTTP網(wǎng)絡(luò)請(qǐng)求)
  • 事件綁定
  • Promise中有也有異步編程
  • Generator / yield
  • async / await

計(jì)算程序執(zhí)行的時(shí)間(預(yù)估)

1)運(yùn)行監(jiān)控 console.time/timeEnd(受當(dāng)前電腦運(yùn)行環(huán)境的影響)

2)大O表示法(提前預(yù)估)

  1. console.time('AAA');  
  2. for (let i = 0; i < 99999999; i++) {}  
  3. console.timeEnd('AAA'); 

真實(shí)項(xiàng)目中應(yīng)該避免死循環(huán) (重要)

  1. while (true) {} 
  2. console.log('OK'); // 不執(zhí)行:上述的死循環(huán)一直占用這“JS渲染線程”,線程空閑不下來(lái),就處理不了其他的事情  

定時(shí)器的異步編程

1)設(shè)置定時(shí)器任務(wù)是同步的

2)“間隔interval這么長(zhǎng)時(shí)間,執(zhí)行定時(shí)器綁定的函數(shù)” 這個(gè)任務(wù)是異步的

3)遇到異步任務(wù),瀏覽器不會(huì)等待它執(zhí)行完,則繼續(xù)渲染下面的代碼;當(dāng)?shù)鹊较旅娲a運(yùn)行完,時(shí)間也到達(dá)了執(zhí)行的條件,才會(huì)把異步任務(wù)執(zhí)行;

  1. setTimeout(() => { 
  2.     console.log("OK"); //2 
  3. }, 1000); 
  4. console.log('NO'); //1 

interval設(shè)置為零也不是立即執(zhí)行,而是瀏覽器都有“最快反應(yīng)時(shí)間(谷歌:5~6ms IE:13~17ms)”,設(shè)置為零,最快也需要等到5~6ms左右

  1. setTimeout(() => { 
  2.     console.log('OK'); //2 
  3. }, 0); 
  4. console.log('NO'); //1 

🌰 異步編程例子一:

  1. setTimeout(() => { 
  2.     console.log(1); 
  3. }, 20); 
  4. console.log(2); 
  5. setTimeout(() => { 
  6.     console.log(3); 
  7. }, 10); 
  8. console.log(4); 
  9. console.time('AA'); 
  10. for (let i = 0; i < 90000000; i++) { 
  11.     // do soming 
  12. console.timeEnd('AA'); //=>AA: 79ms 左右 
  13. console.log(5); 
  14. setTimeout(() => { 
  15.     console.log(6); 
  16. }, 8); 
  17. console.log(7); 
  18. setTimeout(() => { 
  19.     console.log(8); 
  20. }, 15); 
  21. console.log(9); 
  22. // 結(jié)果:2,4,5,7,9,3,1,6,8 

畫(huà)圖分析:( 有圖有真相 )


執(zhí)行順序:同步任務(wù) —> 微任務(wù) —> 宏任務(wù) (微任務(wù)、宏任務(wù)在EventQueue)

  • 細(xì)節(jié)點(diǎn)
  • 當(dāng)棧中的“同步任務(wù)”或者其它任務(wù)沒(méi)有執(zhí)行完之前,JS渲染線程不會(huì)空閑下來(lái),些時(shí)哪怕定時(shí)器已經(jīng)到達(dá)指定時(shí)間,也不會(huì)執(zhí)行的。 “JS是單線程的,一次只能做一件事情” => 定時(shí)器設(shè)定的等待時(shí)間是最快觸發(fā)執(zhí)行的時(shí)間,很多時(shí)候,到時(shí)間不一定會(huì)執(zhí)行,只有JS渲染線程空閑下來(lái)才會(huì)執(zhí)行。

 

責(zé)任編輯:姜華 來(lái)源: 前端學(xué)苑
相關(guān)推薦

2012-07-27 10:02:39

C#

2021-12-08 07:55:41

EventLoop瀏覽器事件

2019-05-27 14:40:43

Java同步機(jī)制多線程編程

2021-09-06 13:12:05

前端JavaScript編程

2020-09-21 14:35:20

VuenextTick前端

2020-03-27 10:08:10

JS異步 I

2012-03-01 20:32:29

iOS

2013-03-08 09:33:25

JavaScript同步異步

2012-06-14 13:55:39

JavaScript

2019-01-17 10:58:52

JS異步編程前端

2025-10-31 12:00:00

Python并發(fā)編程開(kāi)發(fā)

2012-06-14 13:40:04

JavaScript

2021-08-16 15:49:31

開(kāi)發(fā)框架單線程異步

2015-07-03 10:12:04

編程同步非阻塞

2018-01-30 18:15:12

Python網(wǎng)絡(luò)爬蟲(chóng)gevent

2019-07-23 11:01:57

Python同步異步

2023-09-07 08:15:58

場(chǎng)景同步異步

2013-04-01 15:38:54

異步編程異步編程模型

2010-01-15 09:15:09

Scala Actor并發(fā)

2019-02-27 16:00:48

JS原型原型鏈對(duì)象
點(diǎn)贊
收藏

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

在线看成人短视频| jizzjizz在线观看| 亚洲黄色影片| 国产一区二区三区精品久久久| 日韩精品在线视频免费观看| 婷婷伊人综合中文字幕| 奇米影视一区二区三区小说| 亚洲深夜福利视频| caoporm在线视频| 俄罗斯一级**毛片在线播放| 91蜜桃婷婷狠狠久久综合9色| 午夜精品视频网站| 中文文字幕文字幕高清| 国产成人精品一区二区三区视频| 中文一区二区在线观看| 99久久一区三区四区免费| 亚洲 欧美 日韩 在线| 亚洲综合自拍| 这里只有视频精品| 在线免费观看a级片| 成人在线视频区| 日本电影亚洲天堂一区| 午夜精品福利一区二区| 日本波多野结衣在线| 韩国av一区| 日韩有码片在线观看| 中文字幕av网址| 超碰cao国产精品一区二区| 欧美日韩一区视频| 六月激情综合网| yellow字幕网在线| 一区二区三区四区在线| 国产精品一区视频网站| 国产麻豆免费观看| 麻豆成人av在线| 国产精品18久久久久久麻辣| 91浏览器在线观看| 亚洲私人影院| 欧美夫妻性生活视频| 婷婷久久综合网| 久久久久国产| 日韩在线精品视频| 国产wwwwxxxx| 97精品97| 久久久成人精品视频| 国产调教在线观看| 欧美亚洲在线日韩| 国产一区二区动漫| 在线观看国产精品一区| 国产麻豆一区二区三区精品视频| 91麻豆精品国产91久久久资源速度 | 久草视频中文在线| 一区二区中文| 色中色综合影院手机版在线观看| 国产精品无码专区| 日韩一区二区三免费高清在线观看| 亚洲一区在线看| 日韩aⅴ视频一区二区三区| 免费一级毛片在线观看| 91看片淫黄大片一级在线观看| 成人午夜两性视频| 国产色视频在线| 国产成人av一区二区三区在线 | 亚洲人成网站色ww在线| 精品人妻一区二区三区视频| 中国av一区| 欧美tickling挠脚心丨vk| 午夜性福利视频| 都市激情亚洲欧美| 亚洲跨种族黑人xxx| 91激情视频在线观看| 日韩美女一区二区三区在线观看| 日韩精品在线免费| 在线播放第一页| 亚洲精品播放| 丝袜亚洲另类欧美重口| www.狠狠爱| 国产精品久久久乱弄| 欧美成人久久久| 日本黄色录像视频| 精品动漫3d一区二区三区免费版| 久久艳片www.17c.com| 久久丫精品久久丫| 国产美女精品| 91精品综合久久久久久五月天| 无码视频在线观看| 亚洲一区一卡| 国产乱肥老妇国产一区二| 国产wwwwwww| 91网站黄www| 一区二区三区视频在线播放| 黄色在线看片| 玉米视频成人免费看| 裸体大乳女做爰69| 手机在线理论片| 欧美日韩国产首页| 免费黄色三级网站| 99久久99热这里只有精品| 欧美激情亚洲精品| 伊人精品一区二区三区| 成人av资源在线| 亚洲视频精品一区| 第四色日韩影片| 欧美日韩国产一级片| 国产麻豆xxxvideo实拍| 手机亚洲手机国产手机日韩| 性色av一区二区三区红粉影视| 99视频在线看| 国产乱一区二区| 日韩免费av电影| 国精产品一区一区三区mba下载| 亚洲国产精品一区二区久久| 中国黄色片免费看| 最新亚洲精品| 中文字幕一区二区精品| 97久久久久久久| 日日摸夜夜添夜夜添精品视频| 国产精品久久久久久久久久尿 | 天天躁日日躁aaaxxⅹ| 一区二区三区在线电影| 国产精品免费在线免费| 国产免费av观看| 亚洲国产精品成人综合色在线婷婷| 亚洲人一区二区| 欧美羞羞视频| 日韩精品中文字幕在线播放| 久久久久久天堂| 精品一区二区三区久久久| 99国产在线| av网址在线播放| 欧美日韩高清在线播放| 国产又黄又粗视频| 美女精品网站| 欧美xxxx黑人又粗又长精品| 538视频在线| 亚洲第一av网| 久久久久久久久久久久国产| 国产精品亚洲第一区在线暖暖韩国| 国产欧美一区二区在线播放| 青春草视频在线观看| 91精品欧美一区二区三区综合在| 欧美熟妇精品一区二区蜜桃视频| 欧美精品系列| 国产91色在线免费| 国产成人免费看一级大黄| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲欧美日产图| 欧美aaa级| 日日噜噜噜夜夜爽亚洲精品| 在线播放精品视频| 国产精品久久久久久久久免费樱桃| 可以看毛片的网址| 韩国精品视频在线观看| 日韩中文在线中文网在线观看| 日韩成人免费观看| 精品亚洲porn| a级片一区二区| 国产在线播放精品| 国产91|九色| 成人性爱视频在线观看| 欧美日产国产精品| 亚洲视频在线观看视频| 91情侣偷在线精品国产| 懂色av成人一区二区三区| 亚洲图片欧美色图| 亚洲欧美日本一区| 日韩国产欧美在线观看| www.一区二区三区| 1区2区在线| 亚洲欧美在线免费| 中文字幕黄色av| 亚洲久本草在线中文字幕| 免费在线观看日韩av| 亚洲免费网址| 亚洲欧洲精品在线 | 久久精品夜夜夜夜久久| 成人免费xxxxx在线视频| 国产精品久久久久一区二区三区厕所 | 情侣偷拍对白清晰饥渴难耐| 久久不射网站| 亚洲一区三区在线观看| 日本一区二区三区电影免费观看| 最近2019中文字幕大全第二页| 无码人妻丰满熟妇区五十路| 国产精品久久久久久久久免费樱桃| 丝袜老师办公室里做好紧好爽 | 麻豆成全视频免费观看在线看| 欧美一区二区三区啪啪| 亚洲女同二女同志奶水| 国产成人综合在线观看| 日韩少妇内射免费播放| 久久久综合色| 国外成人免费视频| 超免费在线视频| 亚洲成人黄色在线| av首页在线观看| 亚洲一区二区三区影院| 性猛交娇小69hd| 成人三级在线视频| 日本黄大片一区二区三区| 色狮一区二区三区四区视频| 国产精品三区四区| 欧美性aaa| 秋霞午夜一区二区| 日本三级韩国三级欧美三级| 一个色综合导航| 欧美性受xxxx狂喷水| 欧美日韩aaaaaa| 波多野结衣不卡| 午夜精品久久久久影视| 九九热视频在线免费观看| 国内不卡的二区三区中文字幕| 永久免费看av| 成人精品影视| 欧美午夜精品久久久久免费视 | 综合久久2019| 精品国产免费人成在线观看| 伊人网av在线| 91久久精品一区二区| 国产精品23p| 一区二区三区在线免费| 任我爽在线视频| 日本一区二区成人在线| 激情在线观看视频| 日韩 欧美一区二区三区| 九色在线视频观看| 国产大片一区| 激情视频在线观看一区二区三区| 日本免费久久| 4438全国成人免费| 2020日本在线视频中文字幕| 欧美精品激情blacked18| 久久久久久久久免费视频| 在线不卡国产精品| 国产在线视频网站| 亚洲人精品午夜在线观看| 国产精品人人妻人人爽| 欧美性猛交一区二区三区精品| 第一次破处视频| 久久女同精品一区二区| 无码人妻精品一区二区三应用大全| 日本va欧美va精品发布| 国产美女作爱全过程免费视频| 西野翔中文久久精品字幕| 国产伦精品一区二区三区视频黑人 | 95在线视频| 中文字幕亚洲欧美日韩在线不卡| 亚洲av永久无码国产精品久久| 91国在线观看| 无码日韩精品一区二区| 亚洲第一精品在线| 日韩欧美中文字幕一区二区| 五月天网站亚洲| 日韩不卡视频在线| 日本精品免费观看高清观看| 中文在线观看av| 午夜精品爽啪视频| 三级影片在线看| 亚洲电影在线免费观看| 狠狠人妻久久久久久| 日本道在线观看一区二区| 中文字幕在线观看国产| 欧美一区二区国产| 亚洲免费一级片| 亚洲欧洲激情在线| 日日夜夜精品一区| 欧美精品xxx| 都市激情亚洲综合| 国产精品久久久亚洲| 精品一区91| 成人福利视频在线观看| 亚洲精品v亚洲精品v日韩精品| 国产精品一区专区欧美日韩| 小h片在线观看| 国产精品入口免费视| 交100部在线观看| 国产精品极品尤物在线观看| 精品一区视频| 久久久久久久久久久久久久久久av | 99re视频在线播放| 亚洲电影男人天堂| 日韩视频在线观看视频| 91亚洲自偷观看高清| 国产一区二区三区在线免费| 免费在线播放第一区高清av| 久久99爱视频| 成人app下载| 999精品久久久| 婷婷久久综合九色综合伊人色| 久久老司机精品视频| 色先锋久久av资源部| 99国产精品99| 亚洲欧美日韩视频一区| 黄色软件在线观看| 美女精品久久久| 日韩成人av电影| 成人av影视在线| 日韩专区精品| 日韩人妻精品无码一区二区三区| 一本久久知道综合久久| 亚洲欧美日本一区二区三区| 99re这里只有精品6| 亚洲一二三在线观看| 欧美日韩亚洲91| 精品免费久久久| 日韩欧美中文字幕一区| 手机在线观看毛片| 啊v视频在线一区二区三区| 一区二区精品伦理...| 99热在线国产| 天天综合亚洲| 999精品视频在线| 99久久国产综合精品女不卡| 中文字幕观看av| 欧美性大战久久久久久久| 天堂av在线资源| 久久久久久国产精品久久| 亚洲欧美专区| 视频一区二区三| 天堂蜜桃91精品| 成人免费无码大片a毛片| 伊人性伊人情综合网| 国产又粗又猛又黄| 亚洲一区第一页| 桃色一区二区| 久久久久欧美| 亚洲一区黄色| 性欧美丰满熟妇xxxx性久久久| 中文字幕欧美日韩一区| 四虎精品永久在线| 亚洲国产另类久久精品 | 亚洲人成在线观看网站高清| 草草在线视频| 国产尤物99| 在线欧美视频| 无码国产69精品久久久久网站| 中文字幕不卡在线观看| 久久精品99国产精| 欧美第一区第二区| 怡红院在线播放| 国产精品v片在线观看不卡| 久久av超碰| 成人性视频欧美一区二区三区| 美女视频黄 久久| 亚洲午夜久久久久久久国产| 在线日韩一区二区| 国产精品四虎| 91国产一区在线| 午夜精品影视国产一区在线麻豆| 裸体裸乳免费看| 国产精品一区二区免费不卡| 看片网站在线观看| 亚洲二区中文字幕| 国产伦理精品| 99国产在线观看| 亚洲欧洲一级| 丝袜美腿中文字幕| 亚洲国产日韩在线一区模特| 人妻少妇一区二区三区| 久久av中文字幕| 亚洲国产欧美国产第一区| 亚洲熟妇无码一区二区三区导航| 另类人妖一区二区av| www.毛片com| 精品国产一二三| 在线免费av资源| 午夜老司机精品| 国产在线精品一区二区| 久热精品在线观看| 亚洲精品小视频在线观看| abab456成人免费网址| 亚洲综合视频一区| 国产经典欧美精品| 久久久99999| 精品久久久久久久久久久院品网| 国产网友自拍视频导航网站在线观看| 国产精品高潮呻吟视频| 亚洲最新色图| 国精产品一区一区三区免费视频| 婷婷综合在线观看| 黄色小视频在线观看| 亚洲自拍偷拍视频| 国产精品一国产精品k频道56| 黄色在线免费播放| 欧美中文字幕一区| 触手亚洲一区二区三区| 99re在线| 全国精品久久少妇| 精品少妇爆乳无码av无码专区| 日韩一卡二卡三卡国产欧美| 亚洲性色av| 天堂av在线中文| 久久精品一区二区三区不卡牛牛 | 亚洲国产1区| 极品蜜桃臀肥臀-x88av| 欧美xxxx老人做受| 黄色羞羞视频在线观看| 亚洲欧美一区二区原创| 91捆绑美女网站| 亚洲精品无码专区|