日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

前端性能優(yōu)化:防抖與節(jié)流的核心差異、工程實現與場景選型

前端性能優(yōu)化:防抖與節(jié)流的核心差異、工程實現與場景選型 做前端這些年被問得最多的一類問題不是框架怎么選而是“這個滾動監(jiān)聽卡得要死怎么辦”“輸入框每敲一個字就發(fā)一次請求后端同事快盯上我了”。這類問題的答案基本都落在防抖Debounce和節(jié)流Throttle這兩個詞上而它們又恰恰是前端性能優(yōu)化里投入產出比最高的兩個小工具。這兩個概念人人都聽過面試也能背出定義但真正在業(yè)務里寫對、用對、調對的人并不多——我見過太多把防抖寫成節(jié)流、把節(jié)流寫成“限流”、甚至在組件卸載之后還留著定時器默默執(zhí)行的代碼。這篇就把這兩個高頻回調控制手段徹底拆開講它們各自解決什么問題實現上有哪些坑等待參數該怎么算在搜索聯想、滾動加載、按鈕防連點、埋點上報這些真實場景里怎么落地以及怎么和請求競態(tài)、組件生命周期配合起來。無論你是剛入門還是已經寫了兩三年業(yè)務代碼看完至少能做到一件事拿到一個高頻觸發(fā)的場景幾秒鐘判斷出該用哪個并且能徒手寫出來不用翻文檔。1. 先把這兩個概念釘死在場景里1.1 高頻回調為什么會把頁面拖垮瀏覽器的主線程只有一個JS 執(zhí)行、樣式計算、布局、繪制全都排在它后面。一個mousemove在高刷新率設備上一秒能觸發(fā)一百多次一次scroll在慣性滾動里也能輕松跑到六十次以上input事件更是每敲一個字符就來一次?;卣{本身不貴貴的是回調里通常干的事讀scrollTop、讀offsetHeight、改 DOM、發(fā)請求。這里有個很多人不知道的細節(jié)在同一個任務里先寫 DOM 樣式、緊接著讀布局屬性瀏覽器為了給你正確的值會被迫立刻做一次同步布局計算。你寫十次讀十次就是十次強制重排。滾動監(jiān)聽里那種“讀位置—改樣式—再讀位置”的寫法掉幀就是這么來的?;卣{頻率越高這種強制同步布局發(fā)生得越密集最終表現就是滾動條拖不動、手指劃下去畫面發(fā)黏。請求風暴是另一個后果。搜索框如果不做控制用戶輸入“性能優(yōu)化”四個字會發(fā)出四次請求而且這四次請求的返回順序完全不保證——第一字的結果可能最后才回來把正確結果覆蓋掉用戶看到的聯想詞永遠慢半拍。埋點上報更典型滾動一次上報一次一篇文章從頭滑到尾能給你刷出幾百條日志服務端和客戶端兩邊都難受。所以這類優(yōu)化的核心思路從來不是“讓回調跑得更快”而是降低回調的執(zhí)行次數同時不破壞用戶感知的連續(xù)性。這就是防抖和節(jié)流要解決的問題兩者都在做“降頻”但降頻的規(guī)則完全不同。1.2 防抖與節(jié)流的本質差異等安靜 vs 按節(jié)拍我習慣用一個生活場景來講這個區(qū)別。防抖像電梯門只要還有人往里走門就一直重新計時直到徹底沒人了才關上。節(jié)流像地鐵班次不管站臺上擠了多少人車都是按固定間隔發(fā)一班人再多也不會連發(fā)三趟。落到代碼上防抖關注的是“事件停止后的那一刻”它把一串密集觸發(fā)合并成最后一次或第一次執(zhí)行節(jié)流關注的是“固定時間窗口內的第一次”它保證在一段時間內最多執(zhí)行一次中間密集的觸發(fā)直接被丟掉。這個差異決定了它們的適用面維度防抖 Debounce節(jié)流 Throttle觸發(fā)時機停止觸發(fā) wait 毫秒后執(zhí)行每隔 wait 毫秒最多執(zhí)行一次中間觸發(fā)不斷重置計時全部丟棄窗口內的觸發(fā)被丟棄窗口末尾恢復執(zhí)行次數一整串操作通常只執(zhí)行 1 次與持續(xù)時長成正比持續(xù)越久執(zhí)行越多典型場景搜索聯想、表單校驗、窗口 resize 結束、自動保存滾動加載、滾動視差、拖拽跟隨、埋點上報、按鈕防連點用戶感知有“等一下才響應”的延遲感響應是連續(xù)的只是頻率被壓低了判斷標準其實一句話就夠了你關心的是“最終結果”還是“過程中的連續(xù)反饋”搜索框里用戶敲完才是最終結果用防抖滾動視差每挪一段就要更新一次位置用節(jié)流。搞混這兩個代碼不一定報錯但體驗會很別扭——比如把滾動加載寫成防抖用戶必須停下來不動才會觸發(fā)加載滑到底部一直滑就一直不加載這個 bug 我見過不止一次。2. 防抖從“最后一次才執(zhí)行”到可配置的工程實現2.1 最小可用版本與它的三個致命缺陷網上流傳最廣的防抖實現大概長這樣function debounce(fn, wait) { let timer null; return function (...args) { clearTimeout(timer); timer setTimeout(() fn.apply(this, args), wait); }; }十行不到日常用也確實能跑。但它有三個問題在真實項目里遲早會咬你一口。第一個是this指向。注意上面內層用的是箭頭函數箭頭函數沒有自己的this它捕獲的是debounce執(zhí)行時的外層this。如果你把返回的函數掛到某個對象上或者用在類方法里this就丟了。穩(wěn)妥的寫法是內層用普通函數同時在入口處把this存下來const ctx this;然后fn.apply(ctx, args)。第二個是返回值。有些場景需要拿到被包裝函數的返回值比如表單校驗函數返回布爾值防抖之后返回值直接變成undefined調用方拿到就懵了。這個得靠debounced.flush()或者閉包里緩存result來解決。第三個最要命沒法取消。組件卸載了、路由切走了、彈窗關閉了那個setTimeout還在隊列里時間一到照樣執(zhí)行執(zhí)行時訪問的 DOM 早就沒了輕則報Cannot read properties of null重則往已經銷毀的 store 里寫臟數據。所以一個能上生產的防抖必須帶cancel。注意定時器句柄一定要在外層閉包里聲明成let不要掛到返回函數的屬性上也不要用全局變量。每個防抖實例的定時器是獨立的混用會出現“A 的輸入把 B 的計時清掉”這種極其難查的串擾。2.2 立即執(zhí)行、取消與返回值把核心邏輯拆開下面這版是我在項目里用了很久的實現支持首次立即執(zhí)行l(wèi)eading、末次執(zhí)行trailing、手動取消cancel和立即結算flushfunction debounce(fn, wait 300, options {}) { let timer null; let lastArgs null; let lastThis null; let result; const { leading false, trailing true } options; function invoke() { if (!lastArgs) return result; result fn.apply(lastThis, lastArgs); lastArgs null; lastThis null; return result; } function debounced(...args) { lastArgs args; lastThis this; // 判斷這次是不是“新一串事件”的第一次 const callNow leading !timer; if (timer) clearTimeout(timer); timer setTimeout(() { timer null; if (trailing) invoke(); }, wait); if (callNow) invoke(); return result; } debounced.cancel function () { if (timer) clearTimeout(timer); timer null; lastArgs null; lastThis null; }; debounced.flush function () { if (timer) { clearTimeout(timer); timer null; invoke(); } return result; }; return debounced; }關鍵點拆一下。callNow的判斷依據是!timer而不是別的標志位——因為在一次完整的靜默周期內timer從setTimeout開始一直到回調里置空這段時間它都是真值只有靜默wait毫秒之后才會變回null。用timer本身當狀態(tài)能避免引入額外變量導致的時序錯亂。invoke里做了if (!lastArgs) return result;的空判斷。這是因為flush()和定時器回調都可能調用invoke如果上一次已經執(zhí)行完把lastArgs清空了再進來就會用空參數調用一次原函數典型的“在控制臺看到一條參數為 undefined 的多余日志”。加了這個判斷flush在已經執(zhí)行過的情況下就只返回緩存結果不會重復觸發(fā)。leading: true的場景很具體按鈕防連點。用戶點第一下要立刻有反饋不能等 300 毫秒后面連續(xù)的狂點全部丟掉同時trailing: false避免最后一次點擊又補一個請求導致用戶只點了一次卻發(fā)了兩個請求。而搜索聯想恰恰相反要leading: false, trailing: true等用戶停手再發(fā)。這兩個組合別搞反。2.3 參數計算wait 到底該給多少wait給多少沒有標準答案但有幾個錨點可以參照。前端有個公認的感知閾值100 毫秒以內的延遲用戶基本無感超過 200 毫秒開始有“卡了一下”的感覺超過 1 秒就是明確的等待。所以防抖參數要在這個區(qū)間里找平衡。搜索聯想這類場景我一般給250 到 350 毫秒。低于 200 毫秒打字快的人還是會連發(fā)兩三個請求起不到合并效果高于 400 毫秒用戶敲完字會明顯感覺聯想詞“慢半拍”尤其是千兆寬帶下請求本身只要 30 毫秒返回延遲全壓在防抖上了。300 是個能兼顧兩邊的中間值。表單實時校驗、自動保存草稿這類可以放寬到500 到 800 毫秒。這些操作用戶本來就不期待即時反饋而且頻繁請求后端做唯一性校驗服務壓力更敏感。窗口resize結束時重排圖表給150 到 200 毫秒就夠因為反復拖拽瀏覽器窗口邊框時觸發(fā)間隔本來就比較松散。這里還有個更容易被忽略的點輸入法組合輸入。用中文拼音打字input事件會在輸入拼音字母階段就觸發(fā)比如敲“xingneng”會連續(xù)觸發(fā)七八次但此時輸入框里的值是拼音串而不是漢字。如果只做防抖不做保護用戶拼音還沒選完就可能發(fā)出去一個?qxing的請求。解決辦法一行就夠let composing false; input.addEventListener(compositionstart, () { composing true; }); input.addEventListener(compositionend, (e) { composing false; handleInput(e.target.value); // 組合結束后立刻走一次 }); input.addEventListener(input, (e) { if (composing) return; // 組合期間直接忽略 handleInput(e.target.value); });handleInput本身就是防抖過的函數compositionend那一腳相當于提前結算把拼音階段攢下的等待直接兌現用戶選完字的瞬間就能看到聯想結果體驗比純防抖更順。3. 節(jié)流時間戳與定時器兩條路的取舍3.1 兩種基礎寫法差在哪節(jié)流的基礎實現有兩條路差異全在“首次”和“末次”上很多人背了代碼卻沒搞清楚這個差異用錯了才發(fā)現問題。時間戳版本function throttleByTimestamp(fn, wait) { let last 0; return function (...args) { const now Date.now(); if (now - last wait) { last now; fn.apply(this, args); } }; }它的特點是last初始為0第一次調用時now - last是一個巨大的正數必然滿足條件所以首次立即執(zhí)行但最后一次觸發(fā)如果落在當前時間窗口內就會被丟棄末次不執(zhí)行。滾動視差用這個沒問題頁面停下來時位置本身就是對的。但如果是“滾動到底部加載更多”末次不執(zhí)行就意味著用戶正好停在一個卡在閾值附近的臨界位置永遠不觸發(fā)加載得再動一下手指才行。定時器版本function throttleByTimer(fn, wait) { let timer null; return function (...args) { if (timer) return; timer setTimeout(() { timer null; fn.apply(this, args); }, wait); }; }它反過來首次要等wait毫秒才執(zhí)行首延遲但最后一次一定會執(zhí)行末次必觸發(fā)。寬表格橫向滾動同步表頭、拖拽結束后保存位置這類場景末次觸發(fā)很關鍵否則最后一下拖拽就丟了。3.2 組合版首尾都要觸發(fā)實際業(yè)務里最常需要的是“首次立即給反饋 末次補齊”把兩條路縫起來function throttle(fn, wait 200) { let lastTime 0; let timer null; function throttled(...args) { const now Date.now(); const remaining wait - (now - lastTime); if (remaining 0) { // 時間窗口已過立刻執(zhí)行并清掉可能存在的補丁定時器 if (timer) { clearTimeout(timer); timer null; } lastTime now; fn.apply(this, args); return; } // 窗口內不再執(zhí)行但保證末次一定被補上 if (!timer) { timer setTimeout(() { timer null; lastTime Date.now(); fn.apply(this, args); }, remaining); } } throttled.cancel function () { if (timer) clearTimeout(timer); timer null; lastTime 0; }; return throttled; }代碼里有三個細節(jié)值得說。remaining 0那個分支除了執(zhí)行函數還必須清掉已有的timer——因為窗口已經過了手動執(zhí)行完如果再讓老定時器到期補一發(fā)就變成執(zhí)行兩次了。if (!timer)這個守衛(wèi)保證一個窗口內最多只掛一個補丁定時器不會越積越多。lastTime在補丁定時器里要重新賦值否則下一輪判斷的基準還是舊的窗口會算短。cancel里把lastTime重置成0是個小技巧。如果組件銷毀后又被復用比如彈窗關了再打開重置時間基準能讓第一次觸發(fā)立刻執(zhí)行而不是被上次遺留的時間戳卡住半個窗口。3.3 交給渲染節(jié)奏的 rAF 型節(jié)流如果節(jié)流的回調里要改樣式、做動畫、算位置那又有一層更貼合瀏覽器的選擇用requestAnimationFrame代替定時器。原因很簡單瀏覽器一幀是 16.7 毫秒60Hz 屏幕你用setTimeout(fn, 10)去做滾動動畫觸發(fā)點可能落在兩幀之間瀏覽器得把這次的樣式變更攢到下一幀才渲染反而多一次無效計算。rAF 會保證回調在渲染之前的那一幀執(zhí)行改動和繪制對齊function rafThrottle(fn) { let ticking false; return function (...args) { if (ticking) return; ticking true; const ctx this; requestAnimationFrame(() { fn.apply(ctx, args); ticking false; }); }; }它的“節(jié)拍”不再是固定毫秒數而是跟著顯示器刷新率走60Hz 屏幕相當于 16.7 毫秒一次120Hz 屏幕就是 8.3 毫秒一次。滾動監(jiān)聽里讀位置算聯動、吸頂頭部切換、視差位移我基本都用這版。有個坑要避開頁面切到后臺標簽頁時 rAF 會被暫停ticking會一直卡在true回來之后所有觸發(fā)都被吞掉。所以如果這東西用在長生命周期的全局監(jiān)聽上最好在visibilitychange里重置一下狀態(tài)或者在頁面重新可見時手動跑一次。4. 落地到真實業(yè)務三個高頻場景的完整方案4.1 搜索聯想防抖只是第一步競態(tài)才是真問題搜索框是防抖最常見的落地場景但只加防抖是半成品。真實情況是用戶先輸入“性能”請求 A 發(fā)出300 毫秒后又輸入“性能優(yōu)化”請求 B 發(fā)出。A 在路上堵了一下B 先回來了頁面渲染 B 的結果兩秒后 A 回來了把頁面覆蓋成“性能”的聯想詞。用戶看著輸入框里明晃晃的“性能優(yōu)化”四個字下面顯示的是“性能”的結果體驗直接崩掉。處理方案是在防抖之外加一層請求序號校驗let seq 0; const fetchSuggest debounce(async (keyword) { if (!keyword.trim()) { renderSuggest([]); return; } const current seq; try { const res await fetch(/api/suggest?q${encodeURIComponent(keyword)}); const data await res.json(); // 回來的時候如果序號已經變了說明這是個過期請求直接丟棄 if (current ! seq) return; renderSuggest(data.list); } catch (err) { if (current ! seq) return; renderSuggest([]); } }, 300);seq是個單調遞增的計數器每次發(fā)請求前自增并記下當前值回來時對比。這個思路比AbortController取消請求更省事因為用戶手速快的時候可能一瞬間發(fā)出好幾個請求挨個取消反而麻煩序號校驗的好處是請求照發(fā)只是結果按最新的一版渲染。當然如果你更在意省流量用AbortController把上一個請求掐掉也行注意abort會拋出一個AbortError得在 catch 里把它單獨過濾掉別讓它進全局錯誤上報。還有個體驗細節(jié)請求發(fā)出到回來這段時間最好給輸入框一個pending狀態(tài)比如輸入框右側轉個圈。否則用戶敲完字之后 300 毫秒防抖 200 毫秒接口耗時加起來半秒多沒反應會以為頁面卡了。4.2 滾動加載與埋點上報節(jié)流 單調時鐘滾動加載更多的判斷邏輯本身不復雜核心是算距離底部的距離const onScroll throttle(() { const doc document.documentElement; const distanceToBottom doc.scrollHeight - window.innerHeight - window.scrollY; if (distanceToBottom 300 !loading hasMore) { loadNextPage(); } }, 200); window.addEventListener(scroll, onScroll, { passive: true });這里有兩個容易被忽略的點。一是{ passive: true }它告訴瀏覽器這個監(jiān)聽器不會調用preventDefault()瀏覽器就不用等回調執(zhí)行完再滾動滾動流暢度能明顯提升。滾動、觸摸移動這類高頻事件都該加上不加的話控制臺會給你一條“consider marking your touch and wheel event listeners as passive”的提示。二是閾值別給太小。distanceToBottom 300意思是距離底部還有 300 像素就開始加載這個余量是為了讓下一頁在用戶真正滑到底之前就準備好。如果你只有一個可滾動容器比如固定高度overflow: auto的列表window.scrollY就用錯了得換成容器的scrollTopinnerHeight換成clientHeightscrollHeight換成容器的scrollHeight。這種混用是滾動加載不觸發(fā)的頭號原因我在好幾個項目里都遇到過。埋點上報的場景對時鐘更敏感。用Date.now()計算時間差有個隱患用戶在系統設置里手動改了時間或者設備自動校時跳了一下Date.now()會出現跳變可能算出一個負的間隔導致節(jié)流失效now - lastTime變成負數永遠滿足條件或者長時間不觸發(fā)。穩(wěn)妥做法是用單調時鐘performance.now()const report throttle(() { const payload { page: currentPath, depth: Math.round((window.scrollY / document.body.scrollHeight) * 100), ts: Date.now() // 上報時用真實時間戳用于統計 }; navigator.sendBeacon(/api/track, JSON.stringify(payload)); }, 800);注意分工控制頻率用performance.now()業(yè)務時間戳用Date.now()。兩者各司其職別混著用。另外上報優(yōu)先用navigator.sendBeacon它在頁面卸載時也能把數據遞出去比在unload里發(fā)同步請求靠譜得多。4.3 按鈕防連點與框架里的清理按鈕防連點用leading: true, trailing: false的防抖最合適const handleSubmit debounce(async (formData) { submitting.value true; try { await api.submit(formData); toast.success(提交成功); } finally { submitting.value false; } }, 800, { leading: true, trailing: false });wait給 800 毫秒是為了覆蓋一次接口往返。這里有個前提防抖只能攔住“快速連點”攔不住“網絡慢導致的重復提交”。如果接口要跑 3 秒用戶在 800 毫秒后再點一次照樣能發(fā)出去第二個請求。所以服務端冪等唯一請求號和按鈕禁用狀態(tài)這兩層還是得有防抖只是第一道最廉價的防線別指望它解決全部問題。框架里最關鍵的一步是清理。防抖和節(jié)流返回的函數都持有閉包和定時器組件卸載時必須調cancel否則定時器到期執(zhí)行時訪問的響應式變量、DOM 引用都已經失效。React 里的封裝function useDebouncedCallback(fn, wait, deps []) { const fnRef useRef(fn); fnRef.current fn; const debounced useMemo( () debounce((...args) fnRef.current(...args), wait), [wait] ); useEffect(() () debounced.cancel(), [debounced]); return debounced; }fnRef這層是關鍵。如果把fn直接塞進useMemo的依賴里父組件每次重渲染傳進來的新函數都會讓防抖實例重建定時器全部作廢防抖直接失效——這是 React 里防抖“看起來沒生效”的最常見原因。用 ref 存最新的函數、useMemo只依賴wait實例就穩(wěn)定了。Vue 3 里思路一致用onUnmounted收拾import { onUnmounted } from vue; export function useThrottle(fn, wait 200) { const throttled throttle(fn, wait); onUnmounted(() throttled.cancel()); return throttled; }順帶提一句全局監(jiān)聽的問題。如果監(jiān)聽器掛在window上組件卸載時不僅要removeEventListener還要先cancel掉包裝函數。因為addEventListener存的是包裝后的引用你remove的時候必須傳同一個引用很多人重新寫了一遍throttle(fn)去移除函數引用不同根本刪不掉監(jiān)聽器就這么一直掛著內存和 CPU 一起漏。5. 選型、排查與踩坑速查5.1 一張決策表把選型問題關掉每次有人問我“這個該用防抖還是節(jié)流”我基本按下面這張表回答實測覆蓋了九成場景場景選擇建議參數關鍵配置搜索框聯想防抖250-350mstrailing: true配合請求序號表單實時校驗防抖400-600ms監(jiān)聽compositionstart/end自動保存草稿防抖800-1500ms卸載前flush一次窗口 resize 重排防抖150-200ms圖表類可配合ResizeObserver滾動加載更多節(jié)流150-250mspassive: true注意容器內滾動的取值埋點曝光上報節(jié)流500-1000ms用performance.now()計時拖拽跟隨、視差rAF 節(jié)流跟幀走后臺切回時重置狀態(tài)按鈕防連點防抖500-800msleading: true, trailing: false輸入框字符數統計不處理—純計算本身開銷可忽略最后一行值得單獨說。不是所有高頻事件都需要包裝像字符數統計、簡單的class切換開銷就是幾微秒硬套一層防抖反而增加復雜度還可能引入時序 bug。優(yōu)化的第一步永遠是先測量performance面板跑一遍看看到底是哪個函數吃掉了時間別憑感覺上工具。5.2 常見問題排查表下面這些是我和同事在真實項目里踩過的、并且反復出現在代碼評審里的問題按現象整理成速查表現象大概率原因處理方式防抖“完全沒生效”每次觸發(fā)都執(zhí)行包裝函數在每次渲染時被重建React 用useMemo固定實例Vue 放setup頂層報Cannot read properties of null組件卸載后定時器仍執(zhí)行卸載時調用cancel()節(jié)流第一次不觸發(fā)用了定時器版本首延遲換組合版或把lastTime初始化為-Infinity節(jié)流最后一次不觸發(fā)用了時間戳版本加補丁定時器或改組合版中文輸入發(fā)了一堆拼音請求沒處理組合輸入compositionstart/end攔截聯想詞和輸入框內容對不上請求競態(tài)序號校驗或AbortController滾動加載在某個位置永遠不觸發(fā)只判斷了一次或取值對象用錯換容器滾動取值加distanceToBottom打印摘除監(jiān)聽后仍在執(zhí)行移除的引用和添加的不一致保存包裝函數引用先cancel再remove頁面切后臺回來動畫不同步rAF 暫停導致ticking卡死visibilitychange里重置5.3 我踩過的三個坑第一個坑是防抖和節(jié)流混著用。早年做一個橫滑表頭的表格我給scroll套了防抖本意是等用戶停下滑動再同步表頭位置。結果用戶習慣一路滑到底全程表頭紋絲不動停下來的瞬間“啪”地跳過去觀感極差。后來換成 rAF 節(jié)流滾動過程中表頭平滑跟隨問題當場就沒了。這件事讓我記住凡是需要過程連續(xù)反饋的一律節(jié)流只有需要等最終結果的才用防抖。第二個坑是參數給得太激進。有個項目的搜索聯想防抖給了 500 毫秒測試環(huán)境一切正常上了生產用戶反饋“輸入框像死了一樣”。排查半天發(fā)現接口在弱網下平均要 400 毫秒才返回500 400 將近一秒用戶早就不耐煩了。后來把防抖降到 250 毫秒同時在輸入框里加了個 loading 指示觀感立刻好轉。防抖的延遲和接口耗時是疊加的不是取最大值算參數時必須把這段一起算進去。第三個坑是過度包裝。有個列表頁給每一行的一個小圖標都套了獨立的節(jié)流函數五百行就是五百個閉包加五百個定時器句柄頁面一進去內存就蹭蹭漲。這種情況正確的做法是把包裝函數提到列表外面所有行共享一個節(jié)流實例靠event.target或者行索引區(qū)分數據來源。包裝函數是有成本的別在循環(huán)或者列表項里現造。后續(xù)如果還想往深里走可以看看這兩個方向一是把防抖節(jié)流和IntersectionObserver、ResizeObserver結合起來能用觀察者解決的問題就不用監(jiān)聽事件瀏覽器原生幫你算比 JS 里反復讀布局便宜得多二是去翻一翻成熟工具庫的源碼實現對比一下它們在leading/trailing邊界、maxWait這類擴展參數上的處理方式會發(fā)現自己手寫版本里漏掉的很多邊角情況。我個人在實際操作中的體會是這兩個函數加起來不到五十行但真正吃透它帶來的收益遠超五十行代碼本身——它訓練的是對“事件頻率、執(zhí)行時機、生命周期”這三件事的敏感度這種敏感度放到任何性能優(yōu)化場景里都用得上。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国模限制级电影| 天天操熟妇| 黄色激情电影在线观看| 美女爽到高潮91| 97se综合网| 在线观看无码三级少妇| 国产辣妈在线视频福利| 成人九九| 亚洲欧美电影| 男人天堂黄片| 370p日韩欧美亚洲精品| 日韩肏逼视频| 91丝袜| 人妻少妇精品久久久| 婷婷五月天av| 91天堂色男人的天堂| 欧美成人免费在线观看| 日日爱99| 最新无码国产| 成 人 A V免费视频在线观看| 91精品国产长腿丝袜美女| av情色影音| 国产视频一区二区免费| 中文字幕一区二区韩| 男女一进一出视频久久| 亚洲 在线| 97在线视频观看免费| 99操| 91色色综合| 有码免费观看| 激情五月丁香五月| 嗯嗯啊啊亚欧精品| 欧美日本久久精品一区| 亚洲综合影视| Julia Annxxxxx| 亚洲男人天堂视频 | 伊人网高清| 农村妇女精品一二区| 亚洲第一页色网| 春色综合免费| 91天天| 一区二区影视| V A在线| 女性喷水高潮在线观看| 爱妃国产亚洲视频中文字幕| 亚洲精品影视老司机| 岛国大片在线观看网站入口| 成人网站 免费观看| 国内毛片免费h片在线| 强奸乱伦资源| 翔田千里av一区二区三区| 丁香五月AV| oumeisetu综合| 先锋精品av色鲁| 久久久久久久九九九九九九| 男人 天堂 日 亚洲| 9超碰免费| 精品制服美女中文一区二区三区| 九九九国产| 亚洲牲交| 亚洲乱码国产乱码精网站| 国产AV超爽| 情色AV电影| 中文字幕av久久爽Av| 欧美亚洲高清不卡| 东京热,男人的天堂| 久久超碰com| 欧洲黄色网| www.av在线视频| 国内自拍 日韩激情 99| 亚洲国产一区二区三区在线| 日韩综合97P| 国产精选视频| xxxx网站亚洲精品| 欧美色棕合| 欧美中字二区| 超碰欧美| 99在线观看| 夜夜操夜夜爽夜夜高潮| 午夜舔阴达高潮视频免费看| 91超碰人人操| 久久人人爽av亚洲精品天堂桃色 | 3p国产欧美99热| 黄色大片一区二区密桃丝袜| 欧美日日人人天天| 伊人精品久久网站| 亚洲有码 欧美精品| 啊啊啊在线观看免费视频| 欧美色97| 国产一区二区在线电影| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 国产乱人妻精品入口| 视频二区美腿制服人妻欧美| 国产高清26uuu| 999日韩中文精品观看视频。| 人妻 制服 日韩 中文 在线| 色综合一区二区三区| 国产女性无套 免费观看| 超碰人妻中文在线| 亚洲图片激情综合另类| 啊a一区在线| 我要色综合网站| 少妇无码av专区线| 欧美狠狠操| 中文字幕制服诱惑| 欧美|91色综合| 国产自制av蜜乳| 六月色婷婷| 99国产精品自在自在| 97Ai亚洲| 91麻豆va国产精品| 樱花蜜乳av| 淫色网综合| 91综合网站| 久久性爱视频| 日本精品五区| 精品久久大胆人体| 欧美aaaaaaa| 18禁久极品美女久久哦哟呀!| 日韩亚洲欧美中文字幕| 长长久久曰曰夜夜成人网| 日本不卡免费二区| 国产999精品久久久久久| 日本中文字幕一区| 大伊香蕉在线视频免费| 福利大香蕉| 欧美专区日本专区| 亚州,欧美在线| 亚洲色图亚洲无码强奸乱伦| 天天影视综合色| 婷婷色中文字幕| 加勒比色99999| 人妻熟女一区在| 亚洲性天堂| 久久久精品国产亚洲伊人| 久久久97| 91天天综合在线观看| 日韩黄色一区二区三区| 久久男人天堂| 诱惑人妻欧美一区在线播放| 影音先锋中文字幕日本好一区二区| 亚洲 另类 丝袜 自拍 动漫| 亚洲天堂无码| 美女裸体无遮挡永久免费观看网站| 亚洲欧洲美腿丝袜| 一级A片女人高潮叫床| 丰满欧美放荡少妇在线| 北京专精特新企业招聘信息| 国产啊v在线免费播放| 亚洲综合贴图91| 秋霞曰韩R级| 超碰色图| 美腿丝袜偷拍亚洲欧美| 91一起操| 免费作爱一级视频| 中文字幕三四区| 亚洲国内精品成人不卡| 狠狠狠狠狠狠| 亚洲91在线播放影院| 亚洲AV不卡在线观看| 小草精彩毛片| 九九精品热| 日韩激情无码影院| 97色综合中文网| 日本99一区二区| 最新欧洲欧美日本激情网站| 91三级理论片播放器| 人妻久久一区二区三区 | 亚洲日韩资源| laoshunv91| 亚卅熟女乱色| 久久久久久一日韩字幕无码| 中文字幕视频在线观看| 亚洲精品不卡一二三区| 免费看污网站| 亚洲午夜免费狠狠干| 女人被男人桶爽视频网站| 九七超碰| 午夜性生活av免费在线看| 91少妇通奸网站| 大香蕉人妻| 国产亚洲精品农村妇女| 欧亚无码视频| 大色综合| 98久久| 中文字幕91综合| 黄片aaaaa一区| 欧美裸体美女日麻屄| 大屁股国产在线视频| 日韩人妻大香蕉| 日本成人电影资源网| 精品国产Av无码久久久亚洲| 精品免费囯产一区二区三区| 欧美一区二区三区成人性生活| 国产热RE99久久6国产精品首| a片自拍直播视频| 日本免费二区三区| 国桃视频产巨乳精品一区二区在线| 禁止观看美女黄| 91在线欧色| 强奸乱亚洲| 高跟丝袜AV专区国产| 欧美成年人性爱视频免费观看| 国产伊人精品在线| 91操熟女视频| 97操b| 男人的亚洲天堂| 欧美大香蕉97| 蜜臀99999| 99999精品成人| 亚洲综合另类| 精品国产乱码久久久久久影片| 浪人综合网| 一区二区三区高清| 91久久青青草原精品| 中文字幕一区二区无码成人| 蜜臀AV一区二区三区| 人人摸人人舔一区二区| 人人澡人人澡人人| 丰满熟女人妻一区二区三五十一路| 啪啪视频mP4| 乱理日韩中文| 91 亚洲情侣偷拍 久久| 热热色色综合| 99re6在线视频播放免费精品| 亚洲图片在线| 蜜桃天美传媒AV一区二区三区| 97在线欧| 欧美激情一区| 亚洲国产精品成人综合| 成人一级性爱| 少妇高潮对白在线观看| 97精品综合久久| 97天堂| 肥佬影院91| 999热日韩精品| 97在线免费视频观看| 91搡老女人老妇女老熟女歌词翻译| 欧美激情内射| 以及麻豆国产入口在线观看免费| 亚洲一曲日韩精品| 中文字幕一区二区日韩网| 欧亚乱色熟女一区二区| 久操热| 中文伊人大香蕉视频| 亚洲人成网www| 久久婷婷在线观看视频| 久久人妻一区二区三区高清| 天天cao在线| 无码外流操逼视频| 夂久色| 蜜桃久久久久久久| 啊啊啊啊啊好舒服视频| 国产精品视频内谢女人| 亚洲欧美国产其他二区| 69AV女优男人的天堂| 中文在线视频| 色欲久久久久综合网| 日韩久久.一级黄色片| 亚洲激情av| 久久综合女优| 久久9精品| 激情五月综合开心五月| 裸体美女国产免费久久久网站| 中文字幕乱碼在线| 麻豆天美在线| 国产强上视频在线观看| 1区2区3区在线视频| 久久久男人的天堂| 超碰在线一区| 成人 日韩欧美一区| baiduhicn.com。| 国内一级精品| 逼逼逼逼操操操操操操操操操午夜剧场| 久久女人一区二区三区| 六月色色| 欧美人妻熟女在线| 免费的黄片有限公司| 91丨九色丨43老版熟女| 91欧美丝袜| 久久久久亚洲Av无码专区老牛影视| 亚洲伊人a线观看视频| 啊…啊…操我用力操我| 精品国产乱码久久久| 欧美强奸乱能| 伊人伊人LD| yaouchengrenav| 美日韩成人| 偷拍片久久| 手机在线A片| 亚洲综合在线高清| 精品国产Av无码久久久伦古装| 天天做日日做天天欢。| 2019午夜福利视频| 天天操夜夜嗨| 风月影院男女十八禁| 久久久精品电影| 精品久一区免费| 欧美精品97| 在线播放成人网站| 中韩中文字幕在线观看| 屌逼传媒| 国产日韩无码一区二区三区久久区| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 久草精品一区| 人妻一区视频| 9 9无尺码天堂网| 超碰久久草| 久思思热视频在线观看| www.高清无码诱惑一区.com | 啊啊好多水| 边做饭边操逼逼| 熟女在线视频| 91综合中文字幕| 欧插网站| 久综合国内精品自在自线| 夜夜嗷嗷一区二区| 日亚韩精品视频二区三| 激情婷婷黑人91| 五月天开心网| 久久精品福利影院| 人人噜夜夜操| 日本精品第一视频在'| 少妇人妻在线| 91亚洲青青草原精品1区| 欧美黄色手机在线观看| 骚女高跟AV在线| 老司机老司机午夜影院| 日骚逼视频| 嗯嗯啊啊操死我| 成人性爱av| 加勒比AV天堂| 五月婷色| 在线强奷到舒服的无码视频| 丝袜AV一区二区三区| 九九久久久久久爱| 亚洲一区二区三区春色| 日本精品久久久久久久| 日日干夜夜干| 久久东京伊人一本到鬼色| 91天天综合在线| 亚洲黄片免费在线播放| 亚洲欧洲日产国产综合网| 国产精品无套内谢| 亚洲欧美天堂| 青青草女人天天干| 亚州色图狠狠干| 在线观看AV片| 啊啊啊好多水| 亚洲天堂一区二区| 人妻酒店出差被中出免费在线播放| 逼逼逼逼操操操操操操操操操午夜剧场| 啪啪啪综合| 密臀视频一区二区三区| 另类综合另类| 午夜影美女日鸡鸡天天视频国产 | 95人妻爽爽人人做人人澡| 国产兽交视频在线播放| 超碰色97| 国产深喉| 久久久久久久久久黄色网| 91九九| 中文字幕精品一区二区精| 天天夜夜rb| 97欧美色资源| 久久一二三级一一一| 精品少妇人妻av久久免费| 男人的天堂 在线一区| 久久机热| 91 国产丝袜在线播放-百度| 五月天伊人| 日韩高潮一区| 久久女婷| 中文字幕一区av| 成人免费在线网站| 天天色天天干天天爱| 91春色| 水滴偷拍| 亚洲精品不卡一二三区| 精品妇操一区二区三区| 欧美在线|亚洲| 精品人妻视频一区二区三区蜜桃视频| 久久婷婷国产一区二区色| 色婷婷导航| 国产精品黑人一区二区三区| 干B| 日本一区二区三区精品| 亚洲91极品| 猛交交| 丁香五月AV| 日韩无码a片| 日韩精品一区二区日韩| 又大又长又粗又爽又黄| 国产欧美精选自拍一区| 亚洲成人福利电影免费| 美女午夜福利免费视频| 国产亚洲国产超碰| www.色五月| 午夜人妻精品综合在线| 久久久久免费少妇| 女同亚洲欧美一二三区久久电影| 国产熟女少妇一区| 久久久久久91香蕉国产| 97超碰色屌| 丝袜综合| 色妇91| 久久久噜噜噜久久人妻| 亚洲性综合11| 精品一区二区三区国产| 99久国产精品午夜性色福利| 国产网红精品| 丁香五月久久| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 亚洲AV性爱电影| 亚洲自拍天堂| 激情丁香婷婷| 伊人五月天青青草婷婷| 亚洲激情色片| 久久激情婷婷| 2018天天干在线视频| 人人摸人人叼| 久久熟女人| 亚洲黄日韩无码专区| 男人的天堂.com| 精品人妻伦一区二区三区久久| 91综合天天看| 亚洲电影中字一区二区| 色综合av男人天堂| 久久久九97| 1204金沙人妻懂旧版免费| 欧美综合777| 狠狠爱夜夜| 一级毛片久久久久久久女人18| 精品国产乱码久久久久久口爆网站| 强奸乱伦AV网站| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | a人欧美综合天堂麻豆| 99热日| 久久伦理视频久久大香蕉视频| 欧美热图99| 91人妻最真实刺激绿帽| 亚洲精品男人的天堂| 大香蕉男人的天堂| 国产精品久久久久久久久久久久| 国产欧美一级在线观看| 久久色一区| 日韩成人人妻网站| 国产精品毛片?v一区二区三区| 日韩一级免费性爱| 日本一区三级韩国| 欧美色乱| 欧美亚洲丝袜人妻制服99| 亚洲自拍一区夜夜操| 天天干人人乐| 国产精品熟女丝袜一区二区| 伊人991| 夜夜嗨视频| 色婷婷九月天天综合| 熟妇人妻一区二区三区| 亚洲人妻精品一区二区| 乱伦av麻豆| 亚爽爽爽爽爽爽爽爽| 久久97超碰| 日本理论在线| 97国产伦理| 一本色道久久天天射天天干| 国产精品久久天天干| 亚洲精品视频在线| 暴力av在线| 日美免费黄片| 亚洲综合射| 国产女人高潮嗷嗷嗷叫小说| 97干天天| 人人操人人摸人人看人人插| 99啪啪视频| 免费试看60秒| 日日A∨| 免费看黄片现成| 亚洲欧洲视频小说在线观看| 女人久久久| 人人乐大香蕉| 久久透逼视频| 国产成人主播| 国产精品一级毛片不卡视| 伊人精品视频| 国产极品99热在线播放69| 九一性生活免费视频| 欧美亚洲第一页| 大香蕉伊在线久草麻豆天堂故事| 色操逼网| 午夜精品人妻二区三区| 国产精品国产自产高清AV| 999九九精品| 亚洲天堂7777| 亚洲色婷婷综合久久一区二区三区| 伊人黄色视频免费观看| 精品二区三四区五电影| 色色无码| 色欲av一区二区三区蜜芽| 少妇被玩视频二三区| 人人么人人操| 日本日日色视频| 人人性爱视频免费| 清纯唯美激情四射| 色综合天天| 中文字幕无码不卡啪啪| 色婷婷激情| 加勒比久久av| 久久精品一区二区三区蜜桃臀| 精品视频一区二区| www.色婷婷| 无码高清少妇久久| 婷婷激情五月综合| 日本三级韩三级99久久| 久久精品日韩| 超碰精品97| 99www.bibizy香蕉资源国产一区二区三区高清 | 熟女探花啪啪| 亚洲精品一区二区免费在线观看| 9 9精品一区二区三区| 欧美Ⅴ性爱| 久久精品99久久久久久| 欧美男人一区| 在线a v| 97超碰久久| 精品中文日韩字幕视频| 9九九九九视频在线观看| 欧美一二三级精品在线| 久久久久久免费电影| 人人操天天爽| 久久久婷婷| 人人摸.人人色| 日本黄色精品| 亚洲综合113页| 极品色www影院| 亚洲日韩视频二区| 香蕉99秘 一区精品蜜桃臀| 天美精品一区二区三区四区在线观看| 欧美黄页在线| 日本亚洲熟女视频| 97在线精品观看视频| 黄页| 久肏视频字幕| 欧美少妇色综合| 内射白嫩美女| 99色| 九九黄色网| 高清无码 国产精品| 新亚洲无码| 熟妇女伦乱视频| 97爱爱官网| 91国产在线精品| 欧美色图片91| 久久伊人在线五区| 宗合情欲网| 国产欧美伊人| 先锋精品av色鲁| 亚卅熟女乱色| 久久久精品无码亚免费| 黄色片大香蕉| 国产麻豆一级精品视频| 黑人狂躁日本妞一区二区三区| 美国日韩黄片| 精品无吗m| 人妻一区二区三区熟女| 97视频免费播放| 欧美日韩一二三| 青青草在线视频美女| 97在线播放| 亚洲激情欧美色图| 亚洲区小说| 精品二区久久| 俺去啦自拍| 九九热三级片| 欧美熟女少妇| 久久婷婷色综合一区二区三区| 丁香五月天视频| 91原创在线观看| 婷婷三区| 日韩78m视频| 亚洲色图欧美色图制服诱惑| 日产成人久久| 91麻豆天美国产欧美高潮| 日韩人人精品| 78精品| 日韩干B| 91美女视频在线观看| 超碰地址久久| 激情熟女12P| 欧美天天干| 三级三久久线久久99久目本WW| 婷婷五月综合在线| 精品国产嫩穴视频| 少妇人妻精品| 欧美日韩青操| 一本久道久久综合狠狠爱一密臀精| 92久久| 老司机午夜精品视频| 午夜福利av电影在线| 99婷婷| 4141514逼喷水三级片| 欧美999999| 丝袜美腿丝袜| 2019天天干| 久操网视频| 色婷婷久久| 青青草五月天| AV中文字幕剧情1区2区3| 久操免费观看| 青娱乐亚洲自拍| 大香蕉亚洲中文| 97视频620| 一起草视频在线| AV和黑人在线播放| www.婷婷| 亚洲人人夜夜澡人人爽| 久草尤物| 国产精品电影| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲综合在线高清| 少好三P| 欧美精品69性爱| 色色色热| 嫩草91| 日韩字幕一区| www.婷婷六月天| rivers-china.com| 国产亚洲性生活视频播放| 免费黄色片子| 欧美激情色婷婷花野真衣一区二区| 搡老女人老91妇女老熟女| 亚洲一欧洲中文字幕在线| 天堂九九九九九九九九九| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 久久最新免费视频23| 无码人妻系列少妇| 精品无码一区二区三区| 免费的av网| 精品欧美乱码久| 看日韩操逼| 亚洲少妇在线影音| 国产精品嫩草久久久久| 丝袜内射| 97超碰护士| 欧美躁死她一区二区| 亚洲深夜福利| 超碰91在线| 区自美91| 欧美性巨大╳╳╳╳╳高跟鞋| 97公开久久| 亚洲欧美高清无码| 久久久噜噜噜久久久| 人人操人人摸超碰| 91天天日| 激情小说在线视频| 久久国产视频性吧| 国产97亚洲| 无码一区二区三区四区五区六区七区八区九区十区视频 | 九月丁香综合网| 韩日巨乳美女免费视频在线观看| 久久性爱视频免费看| 午夜天天碰综合视频| 91香蕉国产尤物视频| 欧美人妻精品| 一二三区操逼国产91| 99re6国产精品99re在线| 人妻娇喘 激情视频| 久99| 亚洲 在线| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 国产9熟妇视频网站| 再深点灬舒服灬太大了好硬好爽| 亚洲天在线| 激情丁香五月婷婷| 91精品91久久久中77777| 欧美淫穴| 国产精品婬乱一级毛片彝族| 欧美色道啊| 丁香五月性爱| 97干色| 亚洲熟久久| 亚洲操人| 欧美国产精品久久九九| 国模艳艳啪啪一区| 美女9118禁| 中日无幕一二三四区| 天天做天天爱夜夜爽毛片试看| 又黄又粗又硬又长又大| 中文字幕精品资源在线| 伊人91| 欧美日韩少妇色情| 亚洲好看强奸乱伦| 精品传媒在线一区| 亚洲棕合电彰| 国产成人在线观看综合| 思思热在线视频免费| 国产久久男人天堂| 91美女丝袜诱惑视频| 少妇熟女1区2区3区| 久9久9久9久9久9久9| 蜜桃成人1区2区3区| 一级做a爰片久久毛片图片| 久久精品无码不卡| 黄色高清久久无码依人| 黑人黄片在线免费观看| 青娱乐福利99| 啊啊啊操死我了| 一区 欧美 日韩 麻豆| 免费一级毛片在线视频观看| 99久久久无码国产精品性啊聊| 91无摭挡| 日本黄色裸日本黄色裸体 | 国产在线视视频有精品| 日韩人妻一区二区| 久久人妻少妇| 超碰激情808| 国产一区二区三三视频| 国产9区| 久久久久久九九九九九九| 99热66| 一级特级aaaa毛片免费观看| 日本操逼视频免费| 啊啊啊男女| 天天色踪合| 欧美黄色图片| 欧美黄色大香蕉一区二区| 五月婷婷丁香六月丁香| 亚洲天堂久久久久久粉红视频| 色69大色97香蕉| 精品9区| 四虎884a| 欧美亚洲第1页| 日本在线一二| 99热99在线| 影音先锋国产精品| 强奸乱伦资源| 国产探花精品在线| 日本不卡在线二区三区| 亚洲同性aV综合| 久超碰这里只有精品| 亚州高清色综合| 成人一区二区三区四区| 亚洲综合码| 厕所偷拍在线| 国产伦精品免编号公布| 中文字幕黑人大片| 性爱视频久久| 五月丁香婷婷综合| 伊人天堂在线| 中文字幕五区| 人人色人人射人人妻| 老女人爆菊| AV色天香在线| 欧美在线伊人色| 蜜臀99999| 欲射影视| 精品妇操一区二区三区| 亚洲天堂少妇| 女生看匆91网站| juliaann欧美丝袜办公室| 东京热99999| 99久久久| 欧美78P| 东北女人无套内谢视频| 国产强奸乱伦xd| 亚洲伊人a线观看视频| 久久综合国产精品国产| 国产中出内射一区二区| 日韩精品一区二区日韩| 丰满高潮18xxxx| 色一色综合网| 人妻夜夜爽天天爽麻豆三区网站 | 久久久久久久久久久久久久久性生活视频 | 91丨九色丨东北熟女| 中文字幕一区av| 欧美久久草熟女| 超碰97男人| 亚洲少妇免费视频\| 欧美成人贴图| 乱伦强奸区日韩| 日韩美女啪啪一区| 99re免费视频精品全部| 日本天天操| 99操视频| 麻豆天美制片厂网站视频| 国产少妇与亚洲av| 免费视频无码| 亚洲色图 综合| 欲香欲色综合天天伊人| 午夜小电影在线插入淫高潮| 日本三级网页| 超碰人人妻| 色婷婷婷五月天激情四射| 精品人妻15区| 成 人 A V免费视频在线观看| 色色香蕉| 日韩三级网址| 亚洲青青草| 射久久| 欧美人黑A片无码免视费| 日韩欧美字幕亚洲一区二区| 成人综合色网| 狠色婷婷久久一区二区三区_| 91丝袜美女视频| 熟女五十路一区二区三| 亚洲色色色| 999熟女精品| 91综合色噜噜| 亚洲精品视频在线播放| 淫乱图区| 国语av狠狠色丁香婷婷综合激情| 国产精品无码在线| 99热思思| 伊人午夜福利视频| 被窝影院午夜看片无码| 黄色小视频日本txt| 国产精品久久久蜜臀| 色与欲影视天天看综合网| 五月天久久综合网| 精彩视频日韩| 毛片麻豆91糖心精品毛情片| 极品销魂美女一区二区| 婷婷五月天色色| 在线电影亚洲色图| 最新国内自拍av免费| 日本天天操| 黑人性暴力毛片| 日韩午夜精品一区二区三区电影| 欧美综合97www| 久久女人| AV九九| 少妇人妻在线| 欧美一区二区三区互相| 欧美综合骚| 精品人妻一区二区三区免费视频| 亚洲国产麻豆一区二区三区| 国产女同性恋视频| 久久产精品一区二区三区电影| 人妻中文字幕日韩电影| 国产AV人人夜夜澡人人爽麻豆| 欧美性爱18观看| 久久久久中出| 亚洲 欧美 日韩 国产一区二区| 亚洲国男人的天堂| 99∨VTV| 日日骚一区二区三区| 一区二区视频在线播放| 60秒免费视频| 丰满的三级少妇欧美久久久| 偷拍片久久| 色成人Www精品永久观看| 精品视频久久区| 亚洲精品影视老司机| 91丝袜激情在线| 浪人综合网| 天天激色| 亚洲国产高清福利视频| 亚洲天天天| 强免费黄色网址| 亚洲图片欧美偷拍| 天综合中文| 天堂无码| 色欲人妻一区二区在线| 国产午夜激片Av毛片不卡| 岛国不卡超碰护士AV在线播放| 一区操逼日比视频| 久久精品国产97欧美精品亚洲| 熟妇操花| 日韩大香蕉| 欧美内射少妇| 综合 欧美 亚洲 日本| 日本孕妇孕交| 麻豆国产尤物AV| 国产精品久久| 亚洲中文电影| 婷婷色在线| 97天堂| 97激情97激情| 亚洲精品aa久久伊人| 好涩综合| 欧美黑人XXXⅩ高潮交| 中文字幕高清精品一区| 欧美91色| 在线国产探花| 2019天天干| 天天舔九色婷婷| 97久久久| 人妻无一区二区三区| 国产一区二区三区,在线观看观看| 熟女乱伦二区| 亚洲一级黄色毛片| 国产精品久久久999| 亚洲天堂区| 免费啪啪av| 日日干日日摸| 97超碰久久色| 亚洲综合小说另类图欧美视频激情小说色五月天| julia国产在线| 国产美女激情| 九九综合久久| 国产综合永久精品日韩鬼片| 国产AV中文| 9久精品视频在线观看| 亚洲色图久久精品蜜| 色在线亚洲视频www| 伊色久人大在线| 91精品又粗又猛又爽| 内射白嫩美女| 亚洲AV永久无码一区仙野| 久久免费99精品久久久久久| 精品人妻一区二区三区鲁大师| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 欧美一区二区三区互相| 91成人精品| 欧美日韩大陆黑人少妇99| 性色av婷婷久久一区二区点复制| 91国产操逼视频| 九九九偷拍| 啊啊啊久久久视频| 久久夜夜夜夜| 玖色AV| 五月天激情小说| 中文字幕123| 清纯唯美激情| 蜜臀中文无码午夜| 亚洲色图欧美色图制服诱惑| 欧美色日本| 黑人中出21连凳花野真衣| 狠狠爱综合| 国产成人精品日本亚洲语言| 中日亚韩免费视频| 亚洲日韩美女丝袜美腿人妻视频| 午夜亚洲| 欧亚日本情色| 日韩97超碰| 俺去啦自拍| 屁股久久久久久久久| 超碰在97| 操少妞在线视频| 日本免费一区二区不卡| 神马午夜久久久| 亚洲欧美九九九| 96精品久久久久中文字幕| 精品 码产区一区二-1080P高清在线www-B029AV| 91精品女厕偷拍视频| 欧美偷拍区| 黑人美精品 A片| 国产女人高潮嗷嗷嗷叫小说| 精品国产一区二区三区在线播出| 日韩啪啪视频| 999999精品| 激情欧美97| 久草午夜| 国产一区二区成人av在线播放| 蜜臀久久99精品久久久电影| 国产夫妻性生活视频| 久操| 少妇九九九九| 操一对老熟妇爽上天视频| 夜夜嗨一区| 国产区在线| 精品传媒在线一区| 美女十八禁| 不卡在线观看视频| 久久国产熟女影院| 五十路六十路七十路熟婆| 久久首页| 超碰99热| 韩国女主播青草福利视频| 性色国产东北露脸精品视频| 国产性爱欧美性爱在线| 九九九九免费视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 射欧美综合| 亚州春色| 91欧美网| 国产精品分类在线观看| 国产精品自在线发布| 九九色图| 丰满人妻-区二区三区免费| 久久夜嗨| 人妻美腿丝袜日韩| 91精品人| 国产亚洲女v在线观看| 婷婷五月天伊人| 啊啊啊啊啊操我视频| 性爱视频无打码在线观看| 亚洲国产日韩欧美熟妇在线| 国产天美欧美| 久久精品成人一区二区三区蜜臀| 婷婷8月天青娱乐| 97在线观看免费视频| 日本欧美一区二区三区免费| 99视频内射三四| 福利在线视频一区二区| 91色欧美| 翔田千里AV无码秘 三区| 久久久久久久久成人av解说| 亚洲 欧美 91| 91精品少妇搡搡搡| 91天天| 婷婷精品视频| 午夜欧美神马久久久久| 性交一区二区在线播放| 欧美狠狠干| www.av在线观看| 97碰碰日本乱偷人妻中文的| sewuyueav| 无码免费精品高清| 性色avv| 国产偷人妻精品一区二区在线| 加勒比综合| 欧美系列在线一区二区| 中文字幕亚洲欧美在线不卡| 天天天干977| 人人妻人人狠人人| 亚洲国产综合久久久性感熟妇| 午夜天堂精品久久| 日日摸天天爽夜夜欢| 男人高清无码一区二区| 白丝少妇一区二区| 久久精品久| 啊啊啊不要好疼视频| 丝袜天堂网| 手机午夜电影神马久久| 九九热视频在线观看| 欧洲精品区| 婷婷丁香五月天综合东京热| 麻豆福利视频导航| 精品无码欧美三级| 日韩三级视频一区二区三区| 999久久芭蕾| 东京热男人的天堂精品| 成人资源中文字幕在线观看天天| 超碰综合97在线| 亚洲精品国产专区在线观看| 久久精9| 日本乱人伦片中文三区| 97在线国产精品| 欧美性暴力猛交| 欧美一级三级| 欧美综合综合| www.夜夜| 欧美人妻制服| 亚洲无吗在线视频| 91AV天美在线视频| 99这里只有精品国产| 男生女生啊啊啊啊| 强奸乱伦 亚洲一区| 日韩99神马视频片| 欧美日韩大香蕉| SS久久| 人人操人人操人人操人人操人人操人人人11.CM | 色婷婷色99国产综合精品| 97jingpin| 午夜精品视频777| 9.1小视频| 六月婷婷综合| 色吊丝 日日骚 清纯唯美| 欧美日韩激情无码专区| 视频二区熟女人妻| 国产精品免费美女视频| 91男女| 黄片不用下载在线观看| 无码人妻一区二区三区四区老鸭窝| 翔田千里av一区二区三区| 美女诱惑久久| 男人天堂婷婷五月天校园春色| 精品无码久久久久久久久果冻糖心| 亚洲综合网电影91| 国产蜜臀精品一区二区尤物| 日韩成人免费电影| 亚洲高清91| 97人人爱人人做人人乐| 曰韩精品视频一区二区| 怡红院亚洲怡春院av| AV大香蕉| 偷拍三区| 精品无码产区一区二| 一区二区激情国产熟女 | 亚洲人妻中文高清| 中文字幕av一区二区三区人妻少妇| 欧美精品第3页| 国产肏逼网站| ...日韩成人一区二区三区字幕| 人、人、摸,人、人、草| 天天做天天爱| 少妇69中文| 日本色色色| 久久精品国产亚洲AV清纯| 啊啊啊啊好疼视频| 五月天激情四射| heyZO天然素人无码AⅤ专区| 日韩二区三四区五区六区在线看| 亚洲精品一区中文字幕乱码| 亚洲**2021在线观看| 蜜臀99久久精品久久久久久| http://qxhbdz.com| 无码免费精品高清| 美女诱惑久久| 少妇高潮喷水无套久久久久久| 大香蕉av在线| 91久久九九精品国产综合| 国产91专区| 久操大香蕉手机视频在线看| 国产精品久久久无码aV去| 精品国产乱码久久久久久久久久毛片| 久久久com| 欧美色www亚洲国产阿娇要播| 青青草原av| 欧美天天拍| 九九热九九| 成人无码欧美一级A片狼牙直播| 夜夜嗨绯色| 久久99亚洲精品久久99果| 黄色激情电影在线观看| 精品1区2区3区| 97国产综合欧美| 国产传媒一区日韩| 久久久久久久一级黄色打同平台| 强奸抽插av| 校园春色 欧美| 久操在97| 97免费视频网| 亚洲 欧美 手机在线观看| 极品肉射| 欧美丝袜亚洲| 天天透伊人| 97精品综合久久| 天天看,天天做| 亚洲AV无码秘 蜜桃臀国精产品| 春色综合网| 人妻丝袜肏逼| 三级网站超变态精品| 色激情五月天| 欧美日韩性爱视屏免费看了| 久久久无码av精| 蜜乳AV.COM| 收看日本人日bb| 国产精品免费久久久久久久久久| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | julia国产在线| 超碰av在线| 黄色片大香蕉| 免费看久久久性性| 天天搞在线综合网| 综合欧美激情网| 少妇一区二区三区高速| AA级电影三区| 久久精品店| 97综合久久| 色综合91好| 精品97久久| 亚洲日韩天堂| 97精品网| 国模私拍一区二区三区神乳| 亚洲码在线中文在线观看| 色哟哟AⅤ| 你懂的在线观看区国产| 久久久久久人妻一区精品色欧美|