成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript性能優(yōu)化技巧之函數(shù)節(jié)流

開發(fā) 前端
函數(shù)節(jié)流技術的主要思路是,通過一個定時器,阻斷連續(xù)重復的函數(shù)調用。對于我們自己內部使用的函數(shù),這通常意義不大,也不推薦使用這個技術,它可能會丟失對某些數(shù)據(jù)的處理。但是對于在用戶界面調用的函數(shù),卻非常有意義。

函數(shù)節(jié)流技術的主要思路是,通過一個定時器,阻斷連續(xù)重復的函數(shù)調用。對于我們自己內部使用的函數(shù),這通常意義不大,也不推薦使用這個技術,它可能會丟失對某些數(shù)據(jù)的處理。但是對于在用戶界面調用的函數(shù),卻非常有意義。例如一個 mousemove 或者 IE 中 resize 事件的監(jiān)聽函數(shù)。

 

[[45240]]

 

這類事件監(jiān)聽函數(shù)往往伴隨著兩個主要特征:1. 短時間內連續(xù)多次重復觸發(fā) ; 2. 大量的 DOM 操作。眾所周知,DOM 操作對內存和 CPU 的開銷是比較大的,特別是當同時滿足特征1時,往往給瀏覽器造成不小的壓力。函數(shù)節(jié)流技術的意義在于在用戶察覺范圍外,降低函數(shù)調用的頻率,從而提升性能。

這個技巧的大概模式如下面這樣:

  1. var processor = {  
  2.     timeoutId: null,  
  3.  
  4.     performProcessing: function(){  
  5.             // 要執(zhí)行的代碼  
  6.     },  
  7.  
  8.     process: function(){  
  9.         clearTimeout(this.timeoutId);  
  10.         this.timeoutId  = setTimeout(function(){  
  11.             processor.performProcessing();  
  12.         }, 100);  
  13.     }  
  14. };  
  15.  
  16. //調用  
  17. processor.process();  
  18. performProcessing 是真正要調用的函數(shù),而程序的入口在 process,每次進入 process,真正要調用的函數(shù)
  19.  performProcessing 都會被延遲 100 毫秒執(zhí)行,如果在此期間,process 再次被調用,則會重置前一次的計時器,
  20. 重新開始計時,這樣保證了 performProcessing 中的代碼至少要間隔 100 毫秒才會被執(zhí)行一次,原理非常的簡單,
  21. 下面這個函數(shù)也是利用這個原理,通過閉包達到了同樣的目的,它接受兩個參數(shù),***個是要真正要執(zhí)行的函數(shù),第二個是間隔的時間。  
  22. function throttle(fn, delay) {  
  23.     var timer = null;  
  24.     return function () {  
  25.         var context = thisargs = arguments;  
  26.         clearTimeout(timer);  
  27.         timer = setTimeout(function () {  
  28.         fn.apply(context, args);  
  29.     }, delay);  
  30.   };  
  31. }  

【編輯推薦】

  1. JavaScript大辯論:實施改進還是徹底放棄
  2. Google強推Dart語言替代JavaScript 意欲何為?
  3. 在.NET中使用Javascript作為腳本語言
  4. JavaScript有關的10個秘密和怪癖
  5. 10個***Web移動開發(fā)JavaScript框架推薦
責任編輯:陳貽新 來源: HTML5研究小組
相關推薦

2011-07-11 15:26:49

性能優(yōu)化算法

2011-06-14 14:32:46

性能優(yōu)化

2011-06-14 13:48:07

性能優(yōu)化工具

2011-06-14 14:17:23

性能優(yōu)化系統(tǒng)層次

2011-06-14 11:14:10

性能優(yōu)化代碼

2017-12-23 14:38:41

Android編程開發(fā)優(yōu)化

2022-02-25 23:46:54

JavaScript網(wǎng)站開發(fā)

2016-06-30 10:24:47

JavaScript節(jié)流Throttle

2020-12-17 07:52:38

JavaScript

2011-03-11 15:53:02

LAMP優(yōu)化

2024-09-26 08:36:11

JavaScript性能優(yōu)化

2022-12-26 08:25:16

CSS函數(shù)節(jié)流

2009-06-16 16:39:49

Hibernate性能

2024-09-14 11:23:19

2011-03-11 15:52:57

LAMP優(yōu)化

2018-11-20 10:50:00

Java性能優(yōu)化編程技巧

2019-08-21 10:53:29

.NET性能優(yōu)化

2013-06-08 14:19:05

性能優(yōu)化KVM

2012-07-23 10:22:15

Python性能優(yōu)化優(yōu)化技巧

2019-02-25 07:07:38

技巧React 優(yōu)化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线成人 | 国产精品久久久久9999鸭 | 国产三区视频在线观看 | 免费视频一区 | 自拍偷拍第一页 | 中文字幕1区 | 久久久999国产精品 中文字幕在线精品 | 日韩免费网站 | 亚洲精品乱码久久久久久按摩 | av在线一区二区三区 | 久久久久久高潮国产精品视 | 在线免费观看黄色av | 欧美精品在欧美一区二区少妇 | 中国美女一级黄色片 | 欧美中文字幕一区二区三区亚洲 | 三级av免费| 国产美女精品视频 | 中文字幕人成乱码在线观看 | 日韩中文字幕一区二区 | 日韩av免费在线电影 | 精品视频一区二区在线观看 | 草草视频在线免费观看 | 91精品国产91久久久久久三级 | 亚洲视频中文 | 99色在线 | 色吧久久 | 毛片免费观看 | 成人免费在线观看 | 久久久综合久久 | 国产精品一区一区三区 | 亚洲一区国产精品 | 日本精品国产 | 99re6在线 | 九九成人 | 日韩一区二区三区视频 | 久久精品视频99 | 日日摸夜夜添夜夜添精品视频 | 欧美视频第二页 | 日韩精品无码一区二区三区 | 久在线| 亚洲高清在线观看 |