Category Archives: Programming
Тест на регулярные выражения
http://regex.alf.nu/ Вот мой результат — http://grab.by/trRg (заняло часа три, помогал ребёнок трёх лет). Максимум, который видел — 3886 очков (правда за 3 с лишним дня).
Grunt-таск для замены ng-include на код шаблонов
Чтобы не делать лишних запросов на production, здесь решили вставить подключаемый шаблон напрямую: https://github.com/mgcrea/grunt-nginclude
Loading bar-сервис для AngularJS
Всё сделано через interceptors, всё «по-умному». http://chieffancypants.github.io/angular-loading-bar/ Мне, правда, аткой вариант не подходит (я про интерсепторы), уж очень он сильно ограничивает.
Алгоритм бесконечного скролла для AngularJS
Сам не реализовывал (не было надобности), только отдельные части, но кое-какие идейки имеются. Основные идеи Нужно ограничить общее количество элементов, выводимых на странице (допустим, минимальная высота элемента 100 пикселей, максимальная высота экрана — 2000 пикселей, тогда выводить нужно 50 элементов, с запасом). Обновлять выводимые элементы при скролле с использованием throttle. Если хотим иметь правильный скролл, …
Throttle-сервис для AngularJS
Часто нужно вызывать функцию не по возникновению события, а после некоторой задержки, и не чаще, чем раз в какое-то время. Для этого используются throttle и debounce. Throttle Debounce Более подробно о том, что это такое и как реализовать его на jquery — http://benalman.com/projects/jquery-throttle-debounce-plugin/ (тут он всегда живой — https://web.archive.org/web/20170205101542/http://benalman.com/projects/jquery-throttle-debounce-plugin/). Мне такой понадобился для AngularJS. Представляю …
Скоро в javascript появятся нативные promises
http://www.html5rocks.com/en/tutorials/es6/promises/ Совместимы с библиотекой Q (https://github.com/kriskowal/q) и другими, но не совсем то же, что и jquery.promise, т.к. тот не совсем совместим со спецификацией Promises/A+ https://github.com/promises-aplus/promises-spec
Сбор статистики ошибок AngularJS-приложения через Google Analytics
Делается через пользовательские события. Для сбора ошбок достаточно где-то на странице подключить код аналитики (https://support.google.com/analytics/answer/1009694?hl=en). Как можно выше на bootstrap-странице (ндексной странице) подключить «инлайновый» скрипт для обработки общих ошибок:
Universal Analytics вместо Google Analytics
Теперь Google предлагает новый analytics, вот статья про отличия от старого-доброго: https://developers.google.com/analytics/devguides/collection/upgrade/reference/gajs-analyticsjs Допустим, кастомное отслеживание посещения поменялось с
1 |
_gaq.push(['_trackPageview', 'page path'); |
на
1 |
ga('send', 'pageview', 'page path'); |
Javascript-события при анимации
http://www.sitepoint.com/css3-animation-javascript-event-handlers/ Особенно полезна эта табличка про совместимости браузеров и префиксы: W3C standard Firefox webkit Opera IE10 animationstart animationstart webkitAnimationStart oanimationstart MSAnimationStart animationiteration animationiteration webkitAnimationIteration oanimationiteration MSAnimationIteration animationend animationend webkitAnimationEnd oanimationend MSAnimationEnd
touchSwipe — библиотека для работы с touch-событиями
Даёт обработчики всех нужных штук — swipe-left, swipe-top и тп, а также pinch. К сожалению, зависит от jQuery. И почему-то у меня не работает их пример. Но в целом дело нужное. http://www.developerdrive.com/2013/12/introducing-touchswipe/