рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ: рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдЕрджреНрднреБрдд рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХрднреА-рдХрднреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╢рд╛рдВрдд рдЪреАрдЬреЗрдВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред рдЪреЗрддрд╛рд╡рдиреА: рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред



рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛: рдПрдХ рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдЙрд╕ рдЖрдВрджреЛрд▓рди) рдХреА рдШрдЯрдирд╛ рдкрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛: рдЬрдм рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдПрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рдореЗрдВ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдзреАрдорд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХрд╣рддреЗ рд╣реИрдВ, рдпрджрд┐ рдШрдЯрдирд╛ рдХреБрдЫ рд╕реЗрдХрдВрдб рдореЗрдВ 1000 рдмрд╛рд░ рд╣реЛрддреА рд╣реИ, рддреЛ рдЕрджреНрдпрддрди рд╕рдорд╛рди рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП, рдбреНрд░рд╛рдЗрдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдмрд┐рдЬрд▓реА рдХреА рдЧрддрд┐ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордЧреНрд░ рдкреНрд░рджрд░реНрд╢рди, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЧреНрд░рд╕реНрдд рд╣реИ, рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдХрд╛рд░реНрдп: рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдЕрд╡рдзрд┐ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рди рд╣реЛред рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЫреЛрдЯреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде, рдиреЗрддреНрд░рд╣реАрди рджреЗрд░реА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдИ рдмрд╛рд░ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд▓реЛрдб рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдмреНрд░реЗрдХрд┐рдВрдЧ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред



рдЖрдЗрдП рдХреБрдЫ рд╢реБрд░реБрдЖрддреА рдзрд╛рд░рдгрд╛рдПрдБ рдмрдирд╛рддреЗ рд╣реИрдВред



  1. рдЪреВрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдореЗрд╢рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ, рдПрдХ рдзреНрд╡рдЬ рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧ рдФрд░ рдЪреЗрдХрд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкрд┐рдЫрд▓реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдВрддрд░рд╛рд▓ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ), рддреЛ рдЖрдк рдЗрд╕реЗ рдЫреЛрдбрд╝ рдирд╣реАрдВ рд╕рдХрддреЗ - рдЗрд╕реЗ рдЕрдВрддрд░рд╛рд▓ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╕реНрдХреНрд░реАрди рдШрдЯрдирд╛рдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмрд╛рдж рдирд╡реАрдирддрдо рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ ( рдЕрдЧрд░ рдЕрдВрддрд┐рдо рдХреЙрд▓ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдзреНрд╡рдЬ рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдРрд╕реА рдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред
  3. рдпрджрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрдИ рдЕрдзреВрд░реА рдХреЙрд▓ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдЕрдВрдд рддрдХ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд░ рдореЗрдВ рдЕрдВрддрд┐рдо рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  4. рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛, рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдмрд╛рдж, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдореВрд▓ рдЧреБрдВрдЬрд╛рдЗрд╢ рдФрд░ рд╕реНрд╡реАрдХреГрдд рддрд░реНрдХ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЬрд╛рд╣рд┐рд░ рд╣реИред




рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рд╣рдо рдмрд╛рдж рдореЗрдВ рдХреНрд░рдо рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред



  var limitExecByInterval = function (fn, time) {	
	 var lock, execOnUnlock, args;
	 рд╡рд╛рдкрд╕реА рд╕рдорд╛рд░реЛрд╣ () {
		 рдЖрд░реНрдЧ = рддрд░реНрдХ;
		 рдЕрдЧрд░ (рддрд╛рд▓рд╛) {				
			 рддрд╛рд▓рд╛ = рд╕рдЪреНрдЪрд╛;
			 var рдЧреБрдВрдЬрд╛рдЗрд╢ = рдпрд╣;
			 setTimeout (рдлрд╝рдВрдХреНрд╢рди () {
				 рддрд╛рд▓рд╛ = рдЕрд╕рддреНрдп;
				 рдЕрдЧрд░ (рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ)
					 args.callee.apply (рдЧреБрдВрдЬрд╛рдЗрд╢, args);
					 execOnUnlock = false;
				 }
			 }, рд╕рдордп);
			 рд╡рд╛рдкрд╕реА fn.apply (рдпрд╣, args);
		 } рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВOnlock = true;
	 }
 } 




limitExecByInterval



рдЗрдирдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред (рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ Function.prototype



рд╡рд┐рдзрд┐ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ)ред рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:



var myFunc = function(...) { ... }

var myLimitedFunc = limitExecByInterval(myFunc, 150);








рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди.рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреА рд╡рд┐рдзрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрджрд▓реЗрдВ:



  рдлрд╝рдВрдХреНрд╢рди .prototype.limitExecByInterval = рдлрд╝рдВрдХреНрд╢рди (рд╕рдордп) {
	 var lock, execOnUnlock, args, fn = рдпрд╣;
	 ... 


рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



var myLimitedFunc = myFunc.limitExecByInterval(150);







рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЬрд┐рди рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рд╡реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдиреЛрдЯрд┐рд╕, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ - рд╡реЗ рдЗрд╕рдХреЗ рд╕рднреА рдХреЙрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрдВрдЧреЗред рд╡рд╛рдкрд╕реА рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ:

  1. рдХреЙрд▓ рддрд░реНрдХ рд╕рд╣реЗрдЬрдирд╛ (рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЗ рдЦрдВрдб 3 рджреЗрдЦреЗрдВ)
  2. рдЕрдЧрд░ рддрд╛рд▓рд╛ рдЭрдВрдбрд╛ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ

    1. рд▓реЙрдХ рдлреНрд▓реИрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ (рдЖрдЗрдЯрдо 1)
    2. рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рджрд╛рдпрд░рд╛ рд╕рд╣реЗрдЬреЗрдВ (рдЖрдЗрдЯрдо 4)
    3. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗрдЯ рдХрд░реЗрдВ:

      • рддрд╛рд▓рд╛ рдЭрдВрдбрд╛ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ (рдкреГрд╖реНрда 1)
      • рдпрджрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдзреНрд╡рдЬ рдЕрдВрддрд░рд╛рд▓ (рдЦрдВрдб 2) рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рд╕рдВрдкреВрд░реНрдг рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд░реЗрдВред


    4. рд╣рдо рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдореВрд▓ рдХрд╛рд░реНрдп рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рдорд╛рди рдЧреБрдВрдЬрд╛рдЗрд╢ рдФрд░ рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рдиред (рдкреГрд╖реНрда рек)




рдпрд╣рд╛рдБ рдХрд╛рдо рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ ред (рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ: рдПрдлрдПрдл рдФрд░ рдЖрдИрдИ рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдВрддрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдУрдкреЗрд░рд╛ рдФрд░ рд╕рдлрд╛рд░реА рдореЗрдВ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рддреЗрдЬреА рд╕реЗ рдЪрдордХ рд░рд╣рд╛ рд╣реИ)ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреБрдж рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИред :) рдмрд╛рдд рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдорджрдж рдХреА рд╣реИред рдЕрдм рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдордЭреЗрдВ рдХрд┐ рдХреМрди рдФрд░ рдХреНрдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддрд╛ рд╣реИред :)



All Articles