Author Archives: bullgare
Оптимизация вывода длинного списка в браузере
Попросили оптимизировать вывод меню. Состоит оно из нескольких пунктов верхнего уровня, при нажатии на каждый открывается соответствующее подменю. В одном из подменю расположено более 30000(!) пунктов, и ожидается его дальнейшее увеличение.
Как не надо использовать promise
http://taoofcode.net/promise-anti-patterns/
Простой подход к реализации responsive design
Описано, как сделать сетку с использованием media queries. http://www.adamkaplan.me/grid/
Вывести элемент по центру другого
Без заранее не известной ширине и высоте. .element { position: relative; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); } Работает в ИЕ9+. JS Bin http://zerosixthree.se/vertical-align-anything-with-just-3-lines-of-css/
Git — сравнение одного файла в двух ветках
git diff —no-color —binary origin/master — .templates/ru/default/contacts-v2/messenger_message_form_options.tpl
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); }); …
Обработчик кастомных событий на чистом 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 …
Почему нельзя полагаться на тег 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/