var asyncMap = function(arr, fn, endFn) { var i = 0, len = arr.length, res = []; (function callee() { fn(arr[i], i, function(singleRes) { res.push(singleRes); if (++i < len) { callee(); } else { endFn(res); } }, arr); })(); };prosty przykład użycia: http://jsfiddle.net/gkucmierz/QzLP5/
środa, 22 stycznia 2014
asyncMap - asynchroniczne iterowanie po tablicy
Funkcja pozwalająca na iterację po tablicy w sposób asynchroniczny. Można dzięki niej w genialnie prosty sposób wykonać np. kolejkę zadań, które wymagają wykonania asynchronicznych akcji np. zapytanie do innego serwera.
niedziela, 29 września 2013
DialogsControl - kontrolowanie domyślnych okien dialogowych
Prosta funkcja/klasa pozwalająca kontrolować (udawać) okna dialogowe.
Przy pomocy metody disable możemy wyłączyć wyświetlanie wszystkich okien dialogowych. oba parametry tej metody pozwalają ustawić wartości zwracane przez funkcje confirm oraz prompt. Domyślne ich wartości to odpowiednio true oraz '' (pusty string).
Metoda restore pozwala przywrócić domyślne wartości tych funkcji czyli oryginalne okna dialogowe w obiekcie window. Domyślne pod warunkiem, że nie były one modyfikowane przez inny skrypt.
Gotowy kod z przykładami wywołania można przetestować tutaj http://jsfiddle.net/a8BvR/
Przy pomocy metody disable możemy wyłączyć wyświetlanie wszystkich okien dialogowych. oba parametry tej metody pozwalają ustawić wartości zwracane przez funkcje confirm oraz prompt. Domyślne ich wartości to odpowiednio true oraz '' (pusty string).
Metoda restore pozwala przywrócić domyślne wartości tych funkcji czyli oryginalne okna dialogowe w obiekcie window. Domyślne pod warunkiem, że nie były one modyfikowane przez inny skrypt.
var DialogsControl = function(w){ w = w || window; var d = { alert: w.alert, confirm: w.confirm, prompt: w.prompt }; return { disable: function(confirmRet, promptRet){ if (typeof confirmRet === 'undefined') confirmRet = true; if (typeof promptRet === 'undefined') promptRet = ''; w.alert = function(){}; w.confirm = function(){return confirmRet;}; w.prompt = function(){return promptRet;}; }, restore: function(){ w.alert = d.alert; w.confirm = d.confirm; w.prompt = d.prompt; } }; };
Gotowy kod z przykładami wywołania można przetestować tutaj http://jsfiddle.net/a8BvR/
onContentChange
Troszkę słabe rozwiązanie, ale pozwala wykryć zdarzenie zmiany treści na dowolnej stronie.
Zdarzenie po wykryciu odpina się automatycznie.
Przykład wywołania:
jsfiddle: http://jsfiddle.net/f82Um/1/
var onContentChange = function(htmlEl, fn) { var content = htmlEl.innerHTML; (function callee(){ if (htmlEl.innerHTML !== content) { fn(htmlEl.innerHTML, content); return; } setTimeout(callee, 50); })(); };
Zdarzenie po wykryciu odpina się automatycznie.
Przykład wywołania:
onContentChange(document.querySelector('div'), function(n, o){ alert( 'changed'+"\n"+ 'old value: '+o+"\n"+ 'new value: '+n ); });
jsfiddle: http://jsfiddle.net/f82Um/1/
Subskrybuj:
Posty (Atom)