版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第JavaScript中函數(shù)的防抖與節(jié)流詳解目錄一、函數(shù)的節(jié)流1.1定義1.2解決方法1.3案例演示1.3.1代碼演示1.3.2運(yùn)行結(jié)果1.3.3添加函數(shù)節(jié)流操作1.3.4運(yùn)行結(jié)果二、函數(shù)的防抖2.1定義2.2解決方法2.3案例演示2.3.1代碼展示2.3.2運(yùn)行結(jié)果2.3.3添加函數(shù)防抖操作2.3.4運(yùn)行結(jié)果總結(jié)
一、函數(shù)的節(jié)流
1.1定義
同時(shí)觸發(fā)多次函數(shù)執(zhí)行,執(zhí)行的是相同內(nèi)容,要求只執(zhí)行第一次請求。
例如scroll事件,鼠標(biāo)滾動一次觸發(fā)多次函數(shù)執(zhí)行,只需要執(zhí)行一次。
1.2解決方法
定義類似于開關(guān)的效果,定義一個(gè)變量儲存默認(rèn)值,觸發(fā)執(zhí)行之前先判斷變量存儲的數(shù)據(jù),如果是原始數(shù)據(jù)賦值變量新數(shù)據(jù),如果不是原始數(shù)據(jù),執(zhí)行return終止之后程序的執(zhí)行。
1.3案例演示
這里我們先寫一個(gè)窗口監(jiān)聽事件。
1.3.1代碼演示
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
metahttp-equiv="X-UA-Compatible"content="IE=edge"
metaname="viewport"content="width=device-width,initial-scale=1.0"
titleDocument/title
style
body{
//設(shè)置高度讓頁面顯示滾動條
height:4000px;
/style
/head
body
script
//創(chuàng)建窗口監(jiān)聽事件
window.addEventListener("scroll",function(){
fun();
//隨便寫一個(gè)后臺輸出函數(shù)
functionfun(){
console.log(666);
console.log(888);
/script
/body
/html
1.3.2運(yùn)行結(jié)果
可以看到,博主只撥動了一次鼠標(biāo)的滾輪,但是函數(shù)卻執(zhí)行了不止一次。
函數(shù)的節(jié)流就是要做到,滾動一次,執(zhí)行一次函數(shù),后臺輸出一次結(jié)果。
1.3.3添加函數(shù)節(jié)流操作
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
metahttp-equiv="X-UA-Compatible"content="IE=edge"
metaname="viewport"content="width=device-width,initial-scale=1.0"
titleDocument/title
style
body{
height:4000px;
/style
/head
body
script
//創(chuàng)建窗口監(jiān)聽事件
//存儲一個(gè)默認(rèn)值為true
letflag=true;
//窗口監(jiān)聽事件
window.addEventListener("scroll",function(){
if(flag){
flag=false;
}else{
return;
fun();
//隨便寫一個(gè)后臺輸出函數(shù)
functionfun(){
//document.write('已經(jīng)到達(dá)1000px的上卷高度了')
console.log(666);
/script
/body
/html
1.3.4運(yùn)行結(jié)果
二、函數(shù)的防抖
2.1定義
同時(shí)觸發(fā)多次函數(shù)執(zhí)行,只執(zhí)行最后一次請求,多次觸發(fā)的函數(shù)程序結(jié)果是不同的。
2.2解決方法
通過延時(shí)器延遲時(shí)間執(zhí)行程序,先清除定時(shí)器,再觸發(fā)定義的新的延時(shí)器執(zhí)行函數(shù)程序。
2.3案例演示
這里我們先寫一個(gè)input輸入數(shù)據(jù)事件。
2.3.1代碼展示
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
metahttp-equiv="X-UA-Compatible"content="IE=edge"
metaname="viewport"content="width=device-width,initial-scale=1.0"
titleDocument/title
/head
body
inputtype="text"
script
//獲取標(biāo)簽
constoIpt=document.querySelector('input');
//input輸入事件監(jiān)聽
oIpt.addEventListener('input',function(){
console.log(`您輸入了${oIpt.value.length}個(gè)字`);
/script
/body
/html
2.3.2運(yùn)行結(jié)果
這里我判斷的是輸入字符串的長度,可以看到輸出結(jié)果由1-5個(gè)字,最后打出中文又變回了2個(gè)字符。那防抖的操作就是我只打出最后一個(gè)你好這串字符的長度。
也就是同時(shí)觸發(fā)多次函數(shù)請求,只執(zhí)行最后一次。
2.3.3添加函數(shù)防抖操作
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
metahttp-equiv="X-UA-Compatible"content="IE=edge"
metaname="viewport"content="width=device-width,initial-scale=1.0"
titleDocument/title
/head
body
inputtype="text"
script
//獲取標(biāo)簽
constoIpt=document.querySelector('input');
//input輸入事件監(jiān)聽
oIpt.addEventListener('input',function(){
//先清除定時(shí)器
clearInterval(time);
//定義延時(shí)器延遲執(zhí)行函數(shù)程序
time=setTimeout(function(){
//延時(shí)器延遲一秒執(zhí)行程序
setPage();
},2000);
functionse
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)驗(yàn)班考試題型及答案
- 商務(wù)談判自考試題及答案
- 2025 小學(xué)三年級科學(xué)下冊保護(hù)磁鐵的正確方法課件
- 《GAT 1294-2016公安應(yīng)急物資儲備管理信息系統(tǒng)接口參數(shù)》專題研究報(bào)告
- 《GAT 1054.8-2018公安數(shù)據(jù)元限定詞(8)》專題研究報(bào)告
- 2026年深圳中考物理電學(xué)高分突破試卷(附答案可下載)
- 2025 小學(xué)二年級科學(xué)下冊觀察蝴蝶的產(chǎn)卵行為記錄報(bào)告總結(jié)課件
- 職高建筑類題庫及答案
- 胚胎孵化技術(shù)介紹
- 2026年人教版道德與法治八年級上冊期末質(zhì)量檢測卷(附答案解析)
- 汽車租賃服務(wù)規(guī)范與操作手冊(標(biāo)準(zhǔn)版)
- 2026年食品安全員培訓(xùn)考試模擬題庫及解析答案
- 2025國家國防科技工業(yè)局核技術(shù)支持中心社會招聘13人模擬試卷附答案
- 船舶設(shè)備安裝中的技術(shù)難點(diǎn)及應(yīng)對措施
- 福建省漳州市2023-2024學(xué)年高二上學(xué)期1月期末考試物理試題(解析版)
- 建筑制造施工圖設(shè)計(jì)合同模板
- 股骨粗隆骨折并發(fā)癥
- 公司外來參觀人員安全須知培訓(xùn)課件
- 農(nóng)村集貿(mào)市場改造項(xiàng)目實(shí)施方案
- 印刷操作指導(dǎo)書
- 廣州自來水公司招聘試題
評論
0/150
提交評論