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

記一次失敗的jQuery優(yōu)化嘗試

開發(fā) 前端
這篇文章就記錄一次失敗的jQuery優(yōu)化經(jīng)歷。優(yōu)化失敗這并不意味著jQuery的性能是優(yōu)秀的,無法超越的,反之只能說它是一個相對封閉的庫,無法從外部介入進(jìn)行優(yōu)化。

我經(jīng)常抱怨jQuery的DOM操作性能并不優(yōu)秀,并且經(jīng)常嘗試用一些方法去進(jìn)行優(yōu)化,但是越是優(yōu)化,越是沮喪地發(fā)現(xiàn)jQuery其實已經(jīng)做得很好,從使用者的角度能夠進(jìn)行的優(yōu)化實在有限(這并不意味著jQuery的性能是優(yōu)秀的, 反之只能說它是一個相對封閉的庫,無法從外部介入進(jìn)行優(yōu)化)。這篇文章就記錄一次失敗的優(yōu)化經(jīng)歷。

優(yōu)化思想

這一次優(yōu)化的思想來自于數(shù)據(jù)庫。在數(shù)據(jù)庫優(yōu)化的時候,我們常會說將大量的操作放在一個事務(wù)中一起提交,能有效提高效率。雖然對數(shù)據(jù)庫不了解的我并不知道其原因,但是事務(wù)的思想?yún)s為我指明了方向(雖然是錯的)。

因此我嘗試將事務(wù)這一概念引入到j(luò)Query中,通過打開和提交事務(wù),從外部對jQuery進(jìn)行一些優(yōu)化,其最重要的在于減少each函數(shù)的循環(huán)次數(shù)。

眾所周知,jQuery的DOM操作,以get all, set first為標(biāo)準(zhǔn),其中用于設(shè)置DOM屬性/樣式的操作,幾乎都是對選擇出來的元素的一次遍歷,jQuery.access函數(shù)就是其中最核心的部分,其中用于循環(huán)的代碼如下:

  1. // Setting one attribute  
  2. if ( value !== undefined ) {  
  3.     // Optionally, function values get executed if exec is true  
  4.     exec = !pass  exec  jQuery.isFunction(value);  
  5.  
  6. for ( var i = 0; i  length; i++ ) {  
  7. fn(  
  8. elems[i],  
  9. key,  
  10. exec ? value.call(elems[i], i, fn(elems[i], key)) : value,  
  11. pass  
  12. );  
  13. }  
  14. return elems; 

比如jQuery.fn.css函數(shù)就是這樣的:

  1. jQuery.fn.css = function( name, value ) {  
  2.     // Setting 'undefined' is a no-op  
  3.     if ( arguments.length === 2  value === undefined ) {  
  4.         return this;  
  5.     }  
  6.  
  7. return jQuery.access( this, name, value, truefunction( elem, name, value ) {  
  8. return value !== undefined ?  
  9. jQuery.style( elem, name, value ) :  
  10. jQuery.css( elem, name );  
  11. });  
  12. }; 

因此,下面這樣的代碼,假設(shè)被選擇的div元素有5000個,則要循環(huán)訪問10000個節(jié)點:

  1. jQuery('div').css('height', 300).css('width', 200); 

而在我的想法中,在一個事務(wù)中,可以如數(shù)據(jù)庫的操作一般,通過保存所有的操作,在提交事務(wù)的時候統(tǒng)一進(jìn)行,將10000次節(jié)點訪問,減少至5000次,相當(dāng)于提升了1倍的性能。

簡單實現(xiàn)

事務(wù)式的jQuery操作中,提供2個函數(shù):

 ◆  begin:打開一個事務(wù),返回一個事務(wù)的對象。該對象擁有jQuery的所有函數(shù),但是調(diào)用函數(shù)并不會立刻生效,只有在提交事務(wù)后才會生效。

 ◆ commit:提交一個事務(wù),保證所有事先調(diào)用過的函數(shù)都生效,交返回原本的jQuery對象。

實現(xiàn)起來也很方便:

 ◆ 創(chuàng)建一個事務(wù)對象,復(fù)制jQuery.fn上所有函數(shù)到該對象中。

 ◆ 當(dāng)調(diào)用某個函數(shù)時,在預(yù)先準(zhǔn)備好的隊列中添加調(diào)用的函數(shù)名和相關(guān)參數(shù)。

 ◆ 當(dāng)提交事務(wù)時,對被選擇的元素進(jìn)行一次遍歷,對遍歷中的每個節(jié)點應(yīng)用隊列中的所有函數(shù)。

簡單地代碼如下:

  1. var slice = Array.prototype.slice;  
  2. jQuery.fn.begin = function() {  
  3.     var proxy = {  
  4.             _core: c,  
  5.             _queue: []  
  6.         },  
  7.         key,  
  8.         func;  
  9.     //復(fù)制jQuery.fn上的函數(shù)  
  10.     for (key in jQuery.fn) {  
  11.         func = jQuery.fn[key];  
  12.         if (typeof func == 'function') {  
  13.             //這里會因為for循環(huán)產(chǎn)生key始終是***一個循環(huán)值的問題  
  14.             //因此必須使用一個閉包保證key的有效性(LIFT效應(yīng))  
  15.             (function(key) {  
  16.                 proxy[key] = function() {  
  17.                     //將函數(shù)調(diào)用放到隊列中  
  18.                     this._queue.push([key, slice.call(arguments, 0)]);  
  19.                     return this;  
  20.                 };  
  21.             })(key);  
  22.         }  
  23.     }  
  24.     //避免commit函數(shù)也被攔截  
  25.     proxy.commit = jQuery.fn.commit;  
  26.     return proxy;  
  27. };  
  28.  
  29. jQuery.fn.commit = function() {  
  30. var core = this._core,  
  31. queue = this._queue;  
  32. //僅一個each循環(huán)  
  33. core.each(function() {  
  34. var i = 0,  
  35. item,  
  36. jq = jQuery(this);  
  37. //調(diào)用所有函數(shù)  
  38. for (; item = queue[i]; i++) {  
  39. jq[item[0]].apply(jq, item[1]);  
  40. }  
  41. });  
  42. return this.c;  
  43. }; 

測試環(huán)境

測試使用以下條件:

 ◆ 5000個div放在一個容器(div id="container"/div)中。

 ◆使用$(#containerdiv)選擇這5000個div。

 ◆每個div要求設(shè)置一個隨機(jī)背景色(randomColor函數(shù)),和800px以下的隨機(jī)寬度(randomWidth函數(shù))。

參加測試的調(diào)用方法有3個:

 ◆正常使用法:

  1. $('#containerdiv')  
  2.     .css('background-color', randomColor)  
  3.     .css('width', randomWidth); 

 ◆單次循環(huán)法:

  1. $('#containerdiv').each(function() {  
  2.     $(this).css('background-color', randomColor).css('width', randomWidth);  
  3. }); 

 ◆事務(wù)法:

  1. $('#containerdiv')  
  2.     .begin()  
  3.         .css('background-color', randomColor)  
  4.         .css('width', randomWidth)  
  5.     .commit(); 

 ◆對象賦值法:

  1. $('#containerdiv').css({  
  2.     'background-color': randomColor,  
  3.     'width': randomWidth  
  4. }); 

測試瀏覽器選擇Chrome 8系列(用IE測就直接掛了)。

悲傷的結(jié)果

原本的預(yù)測結(jié)果是,單次循環(huán)法的效率遠(yuǎn)高于正常使用法,同時事務(wù)法雖然比單次循環(huán)法慢一些,但應(yīng)該比正常使用法更快,而對象賦值法其實是jQuery內(nèi)部支持的單次循環(huán)法,效率應(yīng)該是***的。

然而遺憾的是,結(jié)果如下:

正常使用法 單次循環(huán)法 事務(wù)法 對象賦值法
18435ms 18233ms 18918ms 17748ms

從結(jié)果上看,事務(wù)法成了最慢的一種方法。同時單次循環(huán)與正常使用并沒有明顯的優(yōu)勢,甚至依賴jQuery內(nèi)部實現(xiàn)的對象賦值法也沒有拉開很大的差距。

由于5000個元素的操作已經(jīng)是非常龐大的循環(huán),如此龐大的循環(huán)也沒能拉開性能的差距,平時最常用的10個左右的元素操作更不可能有明顯的優(yōu)勢,甚至還可能將劣勢擴(kuò)大化。

究其原因,由于本身單次循環(huán)法就沒有明顯的性能提升,因此依賴于單次循環(huán),并是在單次循環(huán)之上進(jìn)行外部構(gòu)建的事務(wù)法,自然是在單次循環(huán)的基礎(chǔ)上還需要額外增加創(chuàng)建事務(wù)對象、保存函數(shù)隊列、遍歷函數(shù)隊列等開銷,結(jié)果敗給正常使用法也在情理之中。

至此,也算是可以宣布模仿事務(wù)的優(yōu)化之道的失敗。但是對這個結(jié)果卻還能進(jìn)一步地分析。

性能在哪里

首先,從代碼的使用上來分析,將正常使用法和測試中最快的對象賦值法進(jìn)行比較,可以說兩者的差距僅在于循環(huán)的元素個數(shù)的不同(這里拋開了jQuery的內(nèi)部問題,事實上jQuery.access的糟糕實現(xiàn)也確實有拖對象賦值法后腿之嫌,好在并不嚴(yán)重),正常使用法是10000個元素,對象賦值法是5000個元素。因此可以簡單地認(rèn)為,18435 17748 = 687ms是循環(huán)5000個元素的耗時,這占到整個執(zhí)行過程的3.5%左右,并不是整個執(zhí)行過程的主干,其實真的沒有優(yōu)化的必要。

那么另外96.5%的開銷去了哪里呢?謹(jǐn)記Doglas的一句話,事實上Javascript并不慢,慢的是DOM的操作。其實剩下96.5%的開銷中,除去函數(shù)調(diào)用等基本的消耗,至少有95%的時間是用在了DOM元素的樣式被改變后的重新渲染之上。

發(fā)現(xiàn)了這個事實之后,其實也就有了更正確的優(yōu)化方向,也是前端性能中的基本原則之一:在修改大量子元素時,先將根父DOM節(jié)點移出DOM樹。因此如果使用以下的代碼再進(jìn)行測試:

  1. //沒有重用$('#container')已經(jīng)很糟糕了  
  2. $('#container').detach().find('div')  
  3.     .css('background-color', randomColor)  
  4.     .css('width', randomWidth);  
  5. $('#container').appendTo(document.body); 

測試結(jié)果始終停留在900ms左右,與前面的數(shù)據(jù)完全不在一個數(shù)量級之上,真正的優(yōu)化成功。

教訓(xùn)和總結(jié)

 ◆千萬要找到正確的性能瓶頸再進(jìn)行優(yōu)化,盲目的猜測只會導(dǎo)致走上錯誤而偏激的道路。

 ◆ 數(shù)據(jù)說話,數(shù)據(jù)面前誰也別說話!

 ◆不認(rèn)為事務(wù)這個方向是錯誤的,如果jQuery原生就能支持事務(wù)這樣的概念,會不會有其他的點可以優(yōu)化?比如一個事務(wù)自動會將父元素脫離出DOM樹之類的
 

原文鏈接:http://www.otakustay.com/a-failure-in-jquery-optimization/

【編輯推薦】

  1. jQuery 1.5正式版發(fā)布 五大變化引人注目
  2. 18個***最給力的jQuery教程分享
  3. 使用 jQuery 簡化 Ajax 開發(fā)
  4. jQuery實現(xiàn)表格數(shù)據(jù)的動態(tài)添加與統(tǒng)計
  5. jQuery1.5新特征之插件機(jī)制的救贖
責(zé)任編輯:陳貽新 來源: 張立理的博客
相關(guān)推薦

2021-01-08 13:52:15

Consul微服務(wù)服務(wù)注冊中心

2023-03-31 09:22:40

Hi3861芯片Flash

2020-02-10 10:15:31

技術(shù)研發(fā)指標(biāo)

2019-09-11 08:22:57

MySQL數(shù)據(jù)庫遠(yuǎn)程登錄

2021-11-11 16:14:04

Kubernetes

2021-07-30 07:28:16

SQL優(yōu)化日志

2021-10-14 10:53:20

數(shù)據(jù)庫查詢超時

2020-08-10 11:00:02

Python優(yōu)化代碼

2013-01-17 10:31:13

JavaScriptWeb開發(fā)firebug

2021-05-13 08:51:20

GC問題排查

2019-03-15 16:20:45

MySQL死鎖排查命令

2013-04-01 10:27:37

程序員失業(yè)

2021-12-20 10:15:16

zip密碼命令網(wǎng)絡(luò)安全

2023-06-07 07:31:04

PC端app脫殼技巧

2011-09-27 10:35:44

2022-03-02 09:01:07

CPU使用率優(yōu)化

2023-04-06 07:53:56

Redis連接問題K8s

2017-07-07 16:07:41

2014-08-11 09:31:52

2022-01-07 11:48:59

RabbitMQGolang 項目
點贊
收藏

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

av大片在线| 亚洲av熟女国产一区二区性色| 久操免费在线| 电影91久久久| 一区二区三区鲁丝不卡| 国产精品日韩欧美一区二区三区| 国产精品suv一区二区三区| 国产一区二区精品久| 欧美一区二区三区在| 久久综合九色综合88i| av在线电影院| 国产日韩高清一区二区三区在线| 亚洲性xxxx| 91精产国品一二三| 精品免费av一区二区三区| 亚洲精品一二三四区| 欧美性大战久久久久| 精品人妻少妇AV无码专区| 日韩一区精品视频| 国模视频一区二区| 四虎地址8848| 禁断一区二区三区在线| 精品奇米国产一区二区三区| 午夜在线观看av| 成人免费观看在线观看| 日韩美女精品在线| 国产精品一区二区三| 久久激情免费视频| wwwwww欧美| 91成人国产综合久久精品| 99视频在线精品国自产拍免费观看| 在线成人中文字幕| 少妇精品一区二区| 视频免费一区二区| 欧美精品日日鲁夜夜添| 人妻有码中文字幕| 成人bbav| 亚洲成人福利片| 欧洲xxxxx| 五月香视频在线观看| 久久久久青草大香线综合精品| 国产精品久久波多野结衣| 国产女人18毛片水18精| 老司机午夜精品| 国产精品久久久久9999| 69成人免费视频| 99热免费精品在线观看| 欧美日韩综合另类| 香蕉视频在线观看黄| 澳门av一区二区三区| 欧美午夜电影在线| 色婷婷av一区| 看一级黄色录像| www,av在线| 日本午夜精品视频| 亚洲素人在线| 日韩美女视频一区二区| 色一情一乱一伦一区二区三区| 国产麻豆91精品| 在线视频欧美日韩| 国产精品免费观看久久| 懂色av一区| 亚洲午夜激情网站| 国产精品无码一区二区在线| 亚洲视频日本| 欧美日韩一级大片网址| 国产精品无码av无码| 美女100%一区| 欧美日韩一区二区三区视频| 欧美一级特黄a| 成人午夜在线| 欧美一区二区私人影院日本| 欧美国产日韩在线视频| 日韩精品免费视频一区二区三区 | 黄色美女视频在线观看| 麻豆av电影在线观看| 91在线观看地址| 免费在线视频一区| 午夜国产精品影院在线观看| 亚洲熟妇无码av在线播放| 国产白丝在线观看| 欧美日韩亚洲一区二| 欧美韩国日本在线| 亚洲一区av| 精品粉嫩超白一线天av| 精品无码在线视频| 波多野结衣的一区二区三区| 久久在线免费观看视频| 日本一区二区网站| 日韩中文欧美在线| av成人免费观看| 日中文字幕在线| 中文字幕视频一区| 热99这里只有精品| 日本久久二区| 亚洲国产日韩欧美综合久久| 国产中文字幕在线看| 国产欧美一区二区在线播放| 精品无码一区二区三区的天堂| 日本成人在线视频网站| 日韩激情片免费| 扒开jk护士狂揉免费| 亚洲成人第一网站| 日本a级不卡| 欧美精品在线免费观看| 欧美午夜无遮挡| 91免费视频黄| 伊人色综合一区二区三区影院视频| 欧美性xxxxx极品少妇| 久久久久无码精品| 国产探花在线精品一区二区| 九九热这里只有精品6| 林心如三级全黄裸体| 国产精品porn| 国产精品一区二区性色av| 空姐吹箫视频大全| 亚洲天堂免费在线观看视频| 男人靠女人免费视频网站| 国产精品国产三级在线观看| 亚洲欧美一区二区三区四区| 久久久.www| 久久精品国产秦先生| 久久久久久九九九九| 丝袜美女在线观看| 欧美精品一卡两卡| 中文字幕免费视频| 99国产精品久久久久久久| 91免费的视频在线播放| av影片免费在线观看| 国产精品卡一卡二| 久久精品99国产| 国产精品巨作av| 欧美日韩福利视频| 99er热精品视频| 国产精品久久久久久久久果冻传媒| 欧美大片在线播放| 免费观看黄网站| 精品视频免费在线观看| 中文一区二区完整视频在线观看| 日韩丝袜美女视频| 手机av免费看| 中文精品视频| 国产欧美一区二区三区另类精品 | 中文字幕亚洲一区在线观看| 狠狠人妻久久久久久| 99热国产精品| 精品无码一区二区三区在线| www.成人网| 欧美激情小视频| 肥臀熟女一区二区三区| 亚洲一区二区成人在线观看| xxxx国产视频| 欧美深夜福利| 国产精品美女xx| gogo高清在线播放免费| 亚洲国产精品久久久久秋霞蜜臀 | 日韩av一级大片| 欧美日韩国产v| 亚洲人成免费电影| 久久精品国产亚洲av麻豆蜜芽| 日本网站在线观看一区二区三区| 久久国产一区二区| 欧美黑人巨大xxxxx| 亚洲人在线视频| 这里只有精品6| 99视频一区二区| 日韩少妇内射免费播放| 国产免费久久| 成人精品在线视频| 欧美日韩在线视频免费观看| 日本久久一区二区| 国产无遮挡在线观看| 亚洲三级网站| 91精品一区二区| 性欧美video高清bbw| 欧美精品一区二区三区四区 | 国产99视频精品免费视频36| 久草在线视频福利| 亚洲欧美精品在线| 97caocao| 精品欧美aⅴ在线网站| 欧美黄色高清视频| 国产精品影视网| 国产成人毛毛毛片| 欧美午夜久久| 精品国产91亚洲一区二区三区www| 9999热视频在线观看| 亚洲人成电影网站色www| 国产视频手机在线| 午夜精品一区在线观看| 国产午夜福利一区| 丁香婷婷综合网| 日本新janpanese乱熟| 欧美黄色免费看| 91网站在线播放| 亚洲天堂av一区二区三区| 精品日韩在线播放| 精品国内亚洲2022精品成人| 国产精品黄页免费高清在线观看| av免费在线免费观看| 亚洲男人av电影| www国产在线| 欧美视频一区二区三区四区| 国产精品第72页| 中文字幕一区二区三区视频| 国产一级二级视频| 国产真实乱子伦精品视频| 日韩中文字幕三区| 国产精品啊v在线| 天堂精品一区二区三区| 国产精品网在线观看| 国产一区视频在线| 丝袜美腿一区| 97视频国产在线| 最新黄网在线观看| 中文字幕日韩在线播放| 涩爱av在线播放一区二区| 精品久久久影院| 国产亲伦免费视频播放| 最新视频 - x88av| 成人勉费视频| 欧美激情欧美狂野欧美精品| 午夜国产福利在线| 亚洲欧美一区二区激情| 天天操天天插天天射| 日韩丝袜情趣美女图片| 91久久精品无码一区二区| 色域天天综合网| 超碰在线资源站| 日韩福利电影在线观看| 国产xxxxx在线观看| 在线播放不卡| 国产又粗又猛又爽又黄的网站| 中文av资源在线| 激情视频一区| 精品国产综合久久| 成人春色在线观看免费网站| 成人黄色网免费| 9999在线精品视频| 91精品久久久久久久久久久久久| 日韩av电影资源网| 国产精品福利在线观看| 日本综合视频| 国产美女被下药99| 亚洲久草在线| 91夜夜揉人人捏人人添红杏| 亚洲图片小说区| 91精品天堂| 亚洲高清在线一区| 国产精品一区二区三区四区五区| 99精品国产高清一区二区麻豆| 国产精品国产三级国产专区53 | 国产精品果冻传媒潘| 黄色美女久久久| 久久99精品久久久久久水蜜桃| 美腿丝袜亚洲图片| 美日韩免费视频| 嫩草伊人久久精品少妇av杨幂| 欧美亚洲国产成人精品| 电影网一区二区| 国产精品久久久久久久久借妻| 欧洲成人一区| 96国产粉嫩美女| 国产亚洲成av人片在线观黄桃| 免费看污久久久| 青青草成人影院| 国产又粗又长又爽视频| 伊人久久亚洲美女图片| 精品久久久久久中文字幕一区奶水| 五月综合色婷婷| 亚洲欧洲综合另类在线| 亚洲精品成人久久久998| 一级黄色片免费| 91精品一区二区三区在线观看| 精品人妻伦一二三区久久 | 国产精品久久久av| 国产精品白丝久久av网站| 成人动漫在线视频| 欧美禁忌电影网| 亚洲区成人777777精品| 国产欧美短视频| 日韩高清第一页| 成人av第一页| 国产精品综合激情| 亚洲综合丝袜美腿| 波多野结衣在线电影| 91精品国产手机| 神马电影在线观看| 欧美精品在线观看一区二区| 亚洲xxx在线| 伊人久久精品视频| 欧美大片黄色| 国产精品香蕉在线观看| 福利电影一区 | 欧美在线观看天堂一区二区三区| 男人和女人啪啪网站| 精品写真视频在线观看| 亚洲欧美另类动漫| 国产不卡视频在线播放| xxx在线播放| 亚洲制服丝袜av| 中文字幕乱码人妻二区三区| 亚洲成人av在线播放| 2021av在线| 欧美一级大片在线免费观看| 999精品视频在线观看| 青青成人在线| 亚洲日本黄色| 免费观看黄网站| 国产精品国产自产拍高清av王其| 五月婷婷激情网| 欧美一区二区美女| melody高清在线观看| 91高清免费在线观看| 亚洲综合色婷婷在线观看| 亚洲在线色站| 久久久五月天| 欧美一级黄色片视频| 国产精品亚洲一区二区三区妖精| 久久婷婷五月综合| 欧美视频一区二区三区…| 精品久久在线观看| 久久久999精品| 激情欧美一区二区三区黑长吊| 免费电影一区| 国产精品久久久久久久久久妞妞| 国产老头和老头xxxx×| 亚洲视频中文字幕| 在线播放国产一区| 一本大道久久加勒比香蕉 | 成人午夜一级二级三级| 精品毛片免费观看| 超碰影院在线观看| 91免费视频网址| 日韩一区二区视频在线| 亚洲精品一区二区三区福利| 日本孕妇大胆孕交无码| 91传媒在线免费观看| 91一区二区| 爱豆国产剧免费观看大全剧苏畅| 国产蜜臀97一区二区三区| 亚洲国产av一区二区三区| 亚洲色无码播放| 日本在线中文字幕一区二区三区| 奇米精品在线| 欧美aa在线视频| 国产馆在线观看| 欧美精品在线一区二区| 黄色免费在线观看| 91久久精品国产91久久性色tv| 最新国产精品久久久| 中文字幕第六页| 亚洲高清一区二区三区| 午夜视频福利在线| 日本精品中文字幕| 成人羞羞网站入口免费| 亚欧激情乱码久久久久久久久| 中文字幕一区二区三区av| 国产又粗又猛又黄又爽无遮挡| 日韩午夜精品视频| 污污网站在线观看| 国产欧美一区二区三区不卡高清| 国产视频一区免费看| 午夜时刻免费入口| 欧美精品丝袜久久久中文字幕| 先锋影音在线资源站91| 精品一区久久久久久| 日日骚欧美日韩| 夫妻性生活毛片| 精品国产sm最大网站免费看 | 国产日韩欧美在线| 中国精品18videos性欧美| 亚洲国产精品第一页| 大桥未久av一区二区三区| 福利成人在线观看| 亚洲自拍偷拍一区| 亚洲视频大全| 性生交大片免费全黄| 欧美一区二区精品| 亚洲风情在线资源| 99re在线观看| 免费亚洲网站| 亚洲波多野结衣| 日韩精品福利网站| 四虎国产精品成人免费影视| 国产在线视频综合| 久久精品视频网| www.国产视频| 国产91在线播放九色快色| 午夜激情久久| 韩国三级hd两男一女| 欧美影视一区在线| а√天堂8资源在线| 亚洲一区免费看| 91原创在线视频| 国产成人麻豆精品午夜在线| 国产精品69精品一区二区三区| 综合日韩在线| 少妇太紧太爽又黄又硬又爽小说| 日韩精品一区二区三区在线 |