1 |
dpavlin |
61 |
/* |
2 |
|
|
Implement defer operations, uniqued by moniker. |
3 |
|
|
Only last one will be triggered after delay which is |
4 |
|
|
by by default, 200 ms |
5 |
|
|
*/ |
6 |
|
|
|
7 |
|
|
var _defered = new Array(); |
8 |
|
|
|
9 |
|
|
function defer(func, delay, moniker) { |
10 |
|
|
if (! delay) delay = 200; |
11 |
|
|
if (! moniker) moniker = 'tmp'; |
12 |
|
|
if (! func) { |
13 |
|
|
$.log.error('defer needs at least function!'); |
14 |
|
|
return null; |
15 |
|
|
} |
16 |
|
|
|
17 |
|
|
if (_defered[moniker]) { |
18 |
|
|
clearInterval( _defered[moniker] ); |
19 |
|
|
$.log.debug('defer for '+moniker+' postponed for '+delay+' ms'); |
20 |
|
|
} |
21 |
|
|
_defered[moniker] = setInterval(function() { |
22 |
|
|
clearInterval( _defered[moniker] ); |
23 |
|
|
$.log.debug('executing '+moniker+' (defered '+delay+' ms)'); |
24 |
|
|
func(); |
25 |
|
|
}, delay); |
26 |
|
|
|
27 |
|
|
return null; |
28 |
|
|
} |