欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript延遲執(zhí)行實(shí)現(xiàn)方法(setTimeout)

 更新時(shí)間:2010年12月30日 22:09:42   作者:  
延遲執(zhí)行,其實(shí)就是用到了setTimeout這個(gè)函數(shù)。善于利用這個(gè)函數(shù),可以減少很多ajax的請(qǐng)求,以及dom操作。
1。延遲切換tab
需求:頁(yè)面上有幾個(gè)tab,切換tab的時(shí)候,會(huì)對(duì)某個(gè)特定區(qū)域的數(shù)據(jù)進(jìn)行拉取更新。
弊端:用戶從第一個(gè)tab切換一直快速切到尾,就會(huì)產(chǎn)生n個(gè)ajax請(qǐng)求。其實(shí)用戶只是需要看到最后一個(gè)tab的數(shù)據(jù)。
復(fù)制代碼 代碼如下:

var changeTab = function(){
var timeId = 0;
return function(tabId){
if(timeId){
clearTimeout(timeId);
timeId=0;
}
setTimeout(function(){
//ajax do something
},500);
};
}();

一個(gè)比較簡(jiǎn)單的例子,綁定在tab上的onmouseover,如果用戶不停的來(lái)回切換tab,ajax請(qǐng)求不會(huì)執(zhí)行,只有停頓500毫秒后,才會(huì)執(zhí)行,500毫秒,其實(shí)蠻短的,基本上不會(huì)影響到用戶體驗(yàn)。

2。延遲自動(dòng)完成
需求:在文本輸入框中,監(jiān)聽用戶輸入,實(shí)現(xiàn)自動(dòng)完成功能。
弊端:用戶每輸入一個(gè)字符,都會(huì)產(chǎn)生一個(gè)ajax請(qǐng)求,如果用戶連續(xù)輸入了一長(zhǎng)串內(nèi)容,請(qǐng)求次數(shù)就很多,實(shí)際上,最后的那次,才是用戶需要的。
代碼與上面例子類似。

3。延遲滾動(dòng)
需求:頁(yè)面的廣告,需要用戶滾動(dòng)到哪,就跟到哪。
弊端:用戶滾動(dòng)在底,觸發(fā)了N次的讓廣告重新定位的函數(shù)。其實(shí),只需要當(dāng)用戶停下的時(shí)候,才觸發(fā)一次就足夠了。
代碼與1類似。

其實(shí)有很多這樣這樣的例子,有些事情,不需要馬上去執(zhí)行,可以延遲一點(diǎn)時(shí)間才執(zhí)行,時(shí)間很短,不影響用戶體驗(yàn),又可以減少很多不必要的消耗。

相關(guān)文章

最新評(píng)論