Category Archives: Programming

Как работать с bower

Тут первые 15 мнут рассказывается про то, как внедрить в проект bower http://youtu.be/1rz334A8U7o

AngularJS: таймеры и одностраничные приложения

Иногда бывает нужно делать какие-то действия по таймеру, иногда даже постоянно. При переходе на экран в соответствующем контроллере стартует функционал, связанный с периодичными действиями (таймауты или интервалы, которые, конечно же, лучше никогда не использовать). При уходе на другой экран надо не забыть очистить таймеры, чтобы не было утечек памяти и ненужных запросов к серверам или …

Read more

Библиотеки для обработки javascript-ошибок

Позволяют делать обработку ошибок кроссбраузерно (поддержка старых версий браузеров). Дают нормальные стеки в различных ситуациях. stacktrace.js TraceKit Zone.js — не совсем для работы с ошибками, но и это умеет тоже. Говорят о них немного подробнее тут — http://youtu.be/4Tys-VuBPgo?t=24m24s

Сборник скринкастов по node.js на русском

от Ильи Кантора — http://learn.javascript.ru/nodejs-screencast. Я к этому товарищу отношусь без особого пиетета, да и с дикцией у него не так хорошо, но для начального уровня — вполне неплохо.

Оптимизация вывода длинного списка в браузере

Попросили оптимизировать вывод меню. Состоит оно из нескольких пунктов верхнего уровня, при нажатии на каждый открывается соответствующее подменю. В одном из подменю расположено более 30000(!) пунктов, и ожидается его дальнейшее увеличение.

Как не надо использовать promise

http://taoofcode.net/promise-anti-patterns/

AngularJS: особенности пробрасывания объектов в директиву

Есть у меня директива такого плана: <div my-selector initial-value=»{a: 1}»></div> Хотелось бы отслеживать изменения в директиве. Вот так она выглядит: directive(‘fbFieldObjectSelector’, [‘$rootScope’, function ($rootScope) { return { restrict: ‘A’, scope: { initialValue: ‘=’ }, template: ‘div’, link: function link($scope, $el, attrs) { … Самый простой способ: $scope.$watch(‘initialValue’, function (initialValue) { // @debug console.log(initialValue); $scope.selectProduct(initialValue); }); …

Read more

Обработчик кастомных событий на чистом js

Часто попадается на собеседованиях, сам спрашиваю;) Давно видел эту ссылку, а тут почему-то найти не могу. Вот решение от Nicholas C. Zakas:

Node.js: конвертация buffer в строку

Делал proxy на Node.js. Некоторые типы ответов сервера мне нужно было парсить и подменять небольшие кусочки. Создаю всё функцией function makeProxy(req, res, cb) { delete req.headers.host; delete req.headers[‘accept-encoding’]; // to prevent gzipping data on api server var options = { hostname: apiHost, port: 80, path: req.url, method: req.method, headers: req.headers }, proxy = http.request(options, cb …

Read more

Почему нельзя полагаться на тег script

Зашёл тут разговор про то, почему jQuery делает eval всего кода внутри всех тегов script. Связано это с тем, что при повторном исполнении скриптов они могут содержать ссылки на старые DOM-элементы, и поэтому могут отрабатывать некорректно. Ну и сложно управлять последовательностью повторного исполнения скриптов. http://stackoverflow.com/questions/3348739/force-re-eval-inline-and-included-javascript