Блог Makeomatic: разработка сайтов и мобильных приложений

Javascript

“Безопасный” $apply в AngularJS

| Категории: Javascript, AngularJS
Анна Аминева

Иллюстрация блокнота

Если вы частенько натыкаетесь на $apply already in progress, пока работаете с ангуляром (я замечаю, что чаще всего с этим сталкиваюсь, когда внедряю сторонние плагины, которые вызывают большое количество DOM событий), то вы можете использовать сервис safeApply для проверки текущей фазы обработки в ангуляре, непосредственно перед выполнением вашей функции. Я обычно патчу $scope объект основного контроллера, а Angular распространяет мои изменения в остальные части приложения за меня:

Улучшение логирования в AngularJS с помощью декораторов

| Категории: Javascript, AngularJS
Анна Аминева

Иллюстрация блокнота

Давайте выясним как использовать Декораторы (Decorators) для улучшения логирования в AngularJS и придания суперсил $log сервису. AngularJS имеет отличную скрытую возможность - $provider.decorator(). Она позволяет разработчикам перехватывать выполнение вызовов к сервисам и убирать, контролировать или изменять возможности этих сервисов. Возможность декорирования была спрятана не специально… скорее она затерялась среди других отличных возможностей AngularJS. В этой статье я представлю Decorator и покажу как постепенно добавлять функциональность к $log сервису… при этом практически не меняя созданные вами сервисы и контроллеры.

AngularJS: а вам нужен заголовок?

Меняем заголовок, основанный на пути браузерной строки

| Категории: Javascript, AngularJS
Анна Аминева

Иллюстрация блокнота

AngularJS используется для написания одностраничных веб приложений. Принимая во внимание сущность одностраничных приложений, заголовок устанавливается 1 раз при первичной загрузке данных, и даже если вы перейдете на страницу с продуктом или на информацию о сайте, вы будете видеть все тот же заголовок в браузере.

Promises

Упрощаем использование параллельных потоков в Javascript

| Категории: Javascript
Анна Аминева

Иллюстрация блокнота

Промисы - представление некоего значения в будущем. Они отличаются от типичного для Node.js стиля с огромным количеством колбэков (Callback hell), потому что они дают вам реальные значения, которые вы можете продолжать использовать.
Несколько примеров:

Удаление анонимного слушателя событий (anonymous event listeners) в JavaScript

| Категории: Javascript
Анна Аминева

Иллюстрация блокнота

Поддержка замыканий

Одна вещь, которую я люблю в JavaScript- это поддержка замыканий ‘closure’.

1
2
3
4
5
6
7
8
9
function alertOnClick(message)
{
var btn = document.getElementById('btnAlert');
btn.addEventListener('click', function() {
alert(message);
}, false);
}
alertOnClick('You have clicked the button!');

Блокнот с помощью браузера с одной строчкой кода

концепции и практическое применение

| Категории: Javascript, HTML5
Анна Аминева

Иллюстрация блокнота

Иногда я только и делаю, что пишу всякую ерунду. Только чтобы очистить свой разум и переключиться с одного дела на другое. Во время выполнения работы в голову то и дело приходят разные мысли, возможно связанные с делом, а возможно и нет. Нужно куда- то записать наработанное, не захламляя рабочее пространство.

Текстовый редактор

Существует очень простой способ использования браузера в качестве текстового редактора. Я просто открываю новую закладку и набираю в url закладке:

data:text/html, <html contenteditable>

Вот и браузерный блокнот.

Почему это работает?

Не надо это запоминать. Это вам не ракеты в космос запускать. Используем формат Data URl и говорим браузеру отрисовать html тег (можете попробовать javascript:alert('Bazinga');)

Содержимое вышеописанного html файла- это простая строка с html5 атрибутом contenteditable.

Важно знать: строка будет работать на современных браузерах, которые распознают данный атрибут.
Все готово. Удачи.

Читайте так же статьи по теме:

Javascript, работа с переменными и их типы

скалярные и составные данные, указатели на объекты и массивы

| Категории: Javascript
Виталий Аминев

Фанатизм

Типы переменных в Javascript

1
2
3
4
5
6
7
8
1. String // строка
2. Boolean // булин: true/false
3. Number // число
4. Object // Объект
5. Array // Массив
6. Function // Функция
7. null // тип - объект, на самом деле ссылка на объект null
8. undefined // не существующая переменная

Скалярные типы переменных

Они же простые типы данных. Их ключевой особенностью является то, что при присвоении другим переменным,
значение копируется

К скалярным типам данных относятся:

  1. String

Стилистические требования к написанию программного кода

пишите поддерживаемый код

| Категории: Javascript, FAQ, Coffee-script
Дмитрий Горбунов

Ни для кого нет секрета в том, что поддерживать крупные проекты достаточно сложно.
Особенно если в работе участвуют несколько программистов. Теперь представим ситуацию, в которой их десятки, они могут покидать проект,
или потребуется ввести нового участника команды в курс дела. Если нет никаких правил, то очень быстр весь код проекта превратится
в большую кашу, и изменить что-либо в нем будет очень накладно.

На помощь приходят правила написания кода. У каждой компании они отличаются, но обязательно существуют, если они хотя бы чего-то стоят.
В Makeomatic мы верим в то, что открытые знания позволят сделать мир лучше, клиентов доверчивее, ну и, конечно же, привлекут еще
больше сотрудников в наш дружный коллектив.

Сервис "AddThis" замедляет вас?

| Категории: Javascript
Анна Аминева

Иллюстрация блокнота

Плагин “AddThis”

Если вы используете плагин “AddThis” на вашем сайте, то есть риск того, что он будет замедлять загрузку всех страниц. В частности, это случается, если вы выкладываете много статьей и у каждой из них есть кнопка “поделиться”. Причина тому - плагин, который делает несколько запросов к разным сайтам в сети, чтобы получить количество «лайков» в сетях. Их количество отображается рядом с кнопкой (кнопка должна размещаться локально на вашем сайте, иначе все будет грузиться еще дольше). Все это занимает время.