Category Archives: Programming

Библиотеки для обработки 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: особенности пробрасывания объектов в директиву

Есть у меня директива такого плана:

Хотелось бы отслеживать изменения в директиве. Вот так она выглядит:

Самый простой способ:

он не работает, ошибка Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting! Второй способ:

и третий способ:

работают, но тоже выдают ошибку: Error: [$compile:nonassign] Expression ‘{a: 1}’ used with directive ‘fbFieldObjectSelector’ is …

Read more

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

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

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

Делал proxy на Node.js. Некоторые типы ответов сервера мне нужно было парсить и подменять небольшие кусочки. Создаю всё функцией

Но тело ответа всегда приходит буфером. Много всякого читал, как вместо буферов принимать строки, пытался через промежуточный поток типа transform всё сделать (http://nodejs.org/api/stream.html#stream_class_stream_transform_1), но ничего не получалось. А потом случайно наткнулся на пост http://stackoverflow.com/questions/12121775/convert-buffer-to-utf8-string#comment31200460_12122668. Достаточно …

Read more

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

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

Вопросники для тестов по javascript

http://madebyknight.com/javascript-scope/ http://javascript.ru/test http://asenbozhilov.com/articles/quiz.html http://www.nczonline.net/blog/2010/02/16/my-javascript-quiz/ http://perfectionkills.com/javascript-quiz/ http://dmitry.baranovskiy.com/post/91403200 http://dmitrysoshnikov.com/ecmascript/the-quiz/ http://james.padolsey.com/javascript/another-javascript-quiz/ http://www.techrepublic.com/blog/software-engineer/javascript-interview-questions-and-answers/

Директивы для обработки DOM-событий в AngularJS

Всё достаточно просто, много раз использовал, но надо бы и здесь выложить. Допустим, нам нужно вешать AngularJS-обработчики на DOM-события mouseenter и mouseleave. Для этого пишем генератор директив по массиву:

Ну и можно добавлять названий дректив по вкусу. Использование:

Результат — http://grab.by/tXHy. Таким же образом можно делать директивы для любых событий: focus, blur, keypress …

Read more