blog

スロットリング

アンチ振動は、頻繁にイベントによってトリガされたときに、順序で頻繁にバインドされたメソッドを呼び出すことから、それを防ぐために、アンチ振動とスロットリングの方法を使用して、対応するメソッドが呼び出され...

Mar 11, 2020 · 2 min. read
シェア

アンチシェイク

イベントが頻繁にトリガーされる場合、バインドされたメソッドを頻繁に呼び出さないように、アンチシェイクとスロットリングを使用して、対応するメソッドの呼び出し回数を減らし、パフォーマンスを向上させます。

アンチシェイクの原理:

指定された時間の頻繁なトリガは、最初の時間または最後の時間のみ実行され、この指定された時間は、再びタイマーで呼び出されたメソッドが動作しないように、別のタイマーを設計するタイマーによってクリアされますトリガします。だから、時間の期間の後にのみトリガされ、もはやタイマーをクリアするためにトリガされませんので、実行する指定された時間の後にタイマーの最終的な設計は、アンチシェイクの即時実装は、実行するためにヌル時間のための真とタイマーのimmdiateにある、つまり、クリックすると、この時点ではタイマーがないことを確認するために、タイマーがあり、状況の頻繁なトリガでクリックします。

ブレ防止コード
function debounce(func,wait,immdiate){
	let timer=null
 return function fun(...args){
 	let canDo=immdiate&&!timer
 canDo?func.call(this,...args):null
 	clearTimout(timer)
 timer=setTimeout(()=>{
 	timer=null
 !immdiate?func.call(this,...args):null
 },wait)
 }
}

スロットリング

スロットリングの原理は、現在のトリガ時刻は、間隔が指定された時間を超えている場合、それはすぐに実行する必要があり、間隔が指定された時間未満である場合は、すぐにタイマーを設計するために実行することはできません、時間を減算する時間の実装では、時間を取得するために実行され、以前をリセットし、メソッドの実装後、以前を変更するには、タイマーをクリアし、NULLに設定する場合は、ここに注意する必要があります。あなたはすでにタイマーを持っている場合は、直接行の時間にタイマーを待って動作する必要はありません。

スロットルコード
	function throttle(func,wait){
 	let timer=null,
 	previous=0
 return function fun(...args){
 	let now=new Date()
 let minus=wait-(now-previous)
 if(minus<0){
 	func.call(this,args)
 previous=now
 }else if(!timer){
 //タイマーがない場合は、タイマーを設計し、複数のタイマーを設計することは避ける
 	timer=setTimeout(()=>{
 clearTimeout(timer)
 timer=null
 previous=new Date()
 func.call(this,args)
 },minus)
 }
 }
 }
Read next

Apple App Vest Packとは?

ウエストコートパッケージとは、新しいシェルを持つアプリのことで、通常、元のアプリのすべての機能を持ち、もちろん、元のアプリの機能の一部である場合もあります。\n\nなぜ新しいアプリが必要なのですか?\nまず理解すべきなのは、Appleが公式にこの種のアプリの使用を禁止しているということです。

Mar 10, 2020 · 2 min read