Рубрика «javascript» - 456

Статья навеяна фреймворком Vanilla.js.

Эпоха старых браузеров уходит в небытие, вряд ли сейчас найдется сознательный человек, использующий ie6,7,8, на зло разработчикам и вопреки техническому прогрессу. Возможно, только по необходимости, например корпоративная система написана под IE6, или лентяи админы издеваются над пользователями и не хотят обновлять/устанавливать новые версии. Тем не менее, статистика использования этих браузеров неумолимо стремится к нулю. Собственно и новая версия jQuery 2.0, отказалась поддерживать устаревшие браузеры(IE 6-8). И тут с релизом jQuery возник вопрос, а для чего же тогда нужен jQuery?
Читать полностью »

Изучая методы реализации real-time обновления данных в браузере, я обнаружил "WAMP" — протокол прикладного уровня для обмена сообщениями, основанный на вебсокетах.
Протокол реализует два распространенных высокоуровневых шаблона для обмена данными: PubSub и RPC (Remote Procedure Call).

Эти шаблоны многим известны и широко применяются в различных областях программирования и межпроцессного взаимодействия:

  • RPC — удаленный вызов процедур. В процессе принимают участие клиент и сервер. Первый отправляет запросы на вызов процедуры на сервере, а второй их выполняет и отправляет результат клиенту. В типичном веб-приложении это может быть, например, запрос на создание комментария или на добавление поста в избранное
  • Publish/Subscribe (PubSub) — метод обмена сообщениями, в котором клиенты «подписываются» на интересующие их события и могут сами генерировать подобные события. Рассылкой информации подписчикам занимается третья сторона — «брокер». В WAMP шаблон PubSub реализован на основе «топиков», или каналов. Например, на сайте такими каналами могут быть «комментарии», «новости», «личные сообщения».

В контексте веб-разработки наиболее интересным вариантом применения протокола WAMP является использование шаблона PubSub. С его помощью можно легко решить задачу обновления информации на открытой у пользователя странице сайта: например, чтобы отобразить только что добавленный комментарий или показать уведомление о получении нового сообщения.
Реализация WAMP существует в виде библиотек под множество языков и платформ, включая, конечно, javascript в виде проекта autobahn.
Читать полностью »

Возникла тут задача, написать код на php, который принимает js-код и обфусцирует его по самое не балуй. После курения гугла и хабра я приступил к работе. Как и следовало, я начал того, что запустил консоль JS в хроме и начал пытаться получать строки из месива символов, вот что получилось (с пояснениями):

(![]+[])

«false»
[] — пустой массив
! — операция логическое НЕ, особенность js (и не только), в том, то при булевых операциях если операнд не является булевым типом и не равен 0 то он признается за true
То есть (![]) = false
+ — операция сложения и объединения строк, если оба операнда числа, то произойдет сложения, иначе это будет объединение строк с приведением типов. Кстати, тут есть особая магия типов, но это позже.
Читать полностью »

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

Изначально, задача показалась весьма линейной — посмотреть тут, потом там, взять что-то по приоритету и передать дальше. Но в процессе выяснилось, что некоторые метки могут появляться асинхронно, и, следовательно, их нужно уметь «ждать».

Усложнение задачи привело к желанию упростить код, участвующий в ее решении.

На примере решения такой задачи, данный пост пытается показать, как проектирование и over engineering может помочь вам в разработке гибких и легко изменяемых приложений.
Читать полностью »

Итератор в шаблонизаторе doT.js по объектам с фильтрациейКомпактный (3.5 Кб) и быстрый шаблонизатор doT.js для браузеров и nodeJS до сих пор (v.1.0.1) имеет итерацию только по массивам. Это не всегда удобно — подгонять управляющий объект под наличие в нём массивов. Лучше подогнать шаблонизатор под наличие в нём итератора по объектам c проверкой условия. Проверять условия в циклах по объектам приходится часто — это и hasOwnProperty(), и проверка на DOM-объект, и взятие части хеша по фильтрации индексов.

Как пишут в шаблоне итерацию по массиву? Примерно так:

{{~it.elemsArray:property:i}} ... {{~}}

Читать полностью »

Долгожданный выпуск AngularJS 1.2.0 готов. Ущипните себя, это не сон.

В AngularJS 1.2.0 исправлено множество проблем, найденных в 1.2.0-RC3, и введено несколько новых функций.

Со времени последнего стабильного релиза, наиболее заметными изменениями являются:Читать полностью »

Привет!

Хекслет 5 месяцев спустя: новые онлайн курсы на русском языке

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

Статистика

  • Завершено три курса (всего – 73 урока)
  • Сейчас в процессе – еще два курса
  • 11 600 студентов зарегистрировано
  • Они сдали более 200 000 тестов
  • Просмотров лекций – больше 160 000 (не считая подкастов в iTunes и раздачи через битторрент)
  • 250 000 посетителей и миллион просмотров страниц

Текущие курсы

Программирование на JavaScript

Короткий курс об основах языка программирования JavaScript. Никакого браузера, никаких jQuery, никакого DOM, только чистый JavaScript со всеми ужасными и прекрасными деталями. Подробнее о курсе можно узнать из первой лекции.
Читать полностью »

Компания DevExpress выпустила очередную версию продукта DevExtreme, который объединяет фреймворки PhoneJS, ChartJS, а также средства интеграции с Microsoft Visual Studio, упрощающие создание приложений, дизайн их форм и сборку пакетов под различные мобильные платформы.
Новая версия DevExtreme с поддержкой платформы Tizen
В версии 13.1.8 линейка поддерживаемых мобильных платформ пополнилась операционной системой Tizen.
Читать полностью »

Доброго времени суток уважаемые читатели. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Riot.js — The 1kb client-side MVP framework

Несколько интересностей и полезностей для веб разработчика (выпуск 8)
Немного статистической правды:

Самый маленький среди похожих популярных фреймворков

Несколько интересностей и полезностей для веб разработчика (выпуск 8)

Самый емкий код (в примере для Todo MVC приложения)

Несколько интересностей и полезностей для веб разработчика (выпуск 8)

Самый быстрый из существующих

Несколько интересностей и полезностей для веб разработчика (выпуск 8)

«Материнский» проект Moot тоже очень крутой и демонстрирует то, каким должен быть форум.

Читать полностью »

image

COLT/JS (Code Orchestra Livecoding Tool) является пре-процессором JavaScript. Это означает, что для достижения эффекта «живого кодирования», приложению требуется преобразовать исходный код на JavaScript специальным образом так, чтобы можно было делать «горячую-замену» реализации любой функции, как только пользователь изменил ее исходный код и сохранил. Мощь таких преобразований можно применять не только для задачи «живого кодирования», а так же и для других, более простых задач.

Для того чтобы использовать трасформации кода COLT для простых и повседневных задач, с которыми сталкивается любой JavaScript-разработчик, мы добавили такую возможность как аннотации. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js