Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

271,42
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

URL.js или дружим JavaScript с обработкой ссылок

Время на прочтение8 мин
Охват и читатели51K
image

Доброго времени суток, уважаемые хабравчане!

Возникла передо мной сегодня задача генерации GET-параметров и всего URL в целом, на стороне клиента, прям вот щас, без возможности «поговорить» с сервером. Сразу оговорюсь, про этот пост я узнал вот прям перед написанием данной статьи ибо сначала закончил писать, а потом уже прибег к поиску, да и пост тот — не со всем про то же самое, что у меня.

Итак, к делу.

Задача и проблемы


Проблемы — те же что и в посте, который я привел выше:
  • Невозможность использовать window.location для «приготовления» URL;
  • Нельзя работать сразу с несколькими window.location в силу политики безопасности браузеров;
  • Отсутствие известных готовых решений ( да и сейчас, уже апосля, я не нашел подобного кода )

Задачи которые я поставил перед собой:
  • Удобный синтаксис
  • Возможность как читать части URL так и изменять их
  • Работа с GET-параметрами
  • Кроссбраузерность и универсальность


Писал я на чистейшем JavaScript, причем без использования prototype.__defineGetter__ или prototype.__defineSetter__ в угоду кроссбраузерности ибо IE < 9 такого не умеет. Более подробно про getters/setters написано в этом посте.

Для тех кому интересно — сядем разберем, а кому надо готовое решение — милости прошу в конец поста, ссылки на скачивание — там.

Приступим! Раньше сядем — раньше выйдем.
Читать дальше →

Node.js + HTML5 + js = online action game. Игра на Node.js

Время на прочтение4 мин
Охват и читатели41K


Давно задавался вопросом, а почему же написание онлайн игр на node.js является таким редким явлением, особенно на хабре?
Ведь какие дифирамбы пели ноде при ее появлении, и сколько пророчили хорошего (или нехорошего) сей платформе, а новых продуктов что-то не сильно прибавляется.

Я решил проверить, действительно ли такой подход к игростроению обречен на провал, и почему. Скажу сразу, результаты меня обнадежили!
Под катом подробности и проблемы, с которыми я столкнулся в процессе разработки.
Читать дальше →

(Архив) Matreshka.js v0.2

Время на прочтение10 мин
Охват и читатели6.4K
Статья устарела. См. актуальную историю версий.


Всем привет. Представляю очередное обновление фреймворка Matreshka.js до версии 0.2. Напомню: Матрешка — фреймворк общего назначения с окрытым исходным кодом, в идеологию которого положено доминирование данных над внешним видом: вы задаёте правила, как интерфейс должен синхронизированться с данными, затем работаете исключительно с данными, кроме случаев, когда событие интерфейса не касается данных (например, щелчек по кнопке или сабмит формы, сами по себе, не меняют данные, а запускают функцию, которая, в свою очередь, работает с данными)

Читать дальше →

Контроллеры директив в AngularJS

Время на прочтение3 мин
Охват и читатели52K
Немного о контроллерах директив. Зачем они нужны и чем отличаются от функции link.
Читать дальше →

Платформер на Three.js

Время на прочтение6 мин
Охват и читатели38K
На днях мистер Дуб принял мой первый pull request с примером в Three.js, и на радостях я решился написать о нём хабропост. Если вам вдруг захочется написать трёхмерный платформер на Three.js, но вы не особо представляете себе, как это сделать, этот пример — для вас:



Весь код примера занимает менее 300 строк, щедро разбавленных переносами, разобраться в которых самостоятельно не составит особого труда. Однако, чтобы ещё больше облегчить вашу участь, я напишу немного ниже пару слов о ключевых моментах.
Почитать, что ли...

Создание модулей JS

Время на прочтение4 мин
Охват и читатели23K
Здравствуйте!

В этой статье я хочу рассказать вам о моём подходе к написанию модулей на JavaScript. Профессионалы вряд ли найдут для себя что-то новое, а вот новичкам, я думаю, будет полезно ознакомиться с предложенным подходом и аргументами в его пользу.
Читать дальше →

Сотни неработающих сайтов, или о том, как code.jquery.com забыли продлить SSL-сертификат

Время на прочтение1 мин
Охват и читатели26K
Сегодня ночью я стал свидетелем довольно-таки интересной ситуации.

Примерно в 23:50 по московскому времени на страницах моего сервиса перестал выполнятся код, использующий библиотеку JQuery.

После недолгих исследований проблемы мне удалось выяснить, что данное происшествие напрямую связано с просроченным SSL сертификатом домена code.jquery.com, который я использую для подключения jquery на своем сайте.
Читать дальше →

Фильтр для комментариев Хабрахабра в виде userscript: версия 2

Время на прочтение2 мин
Охват и читатели6.6K
Некоторое время назад я написал простой userscript, позволяющий фильтровать комментарии на Хабре по рейтингу. И вот сейчас вышла 2-ая версия с новым функционалом, более быстрой фильтрацией и стабильной работой в Firefox и Chrome.

Читать дальше →

Удобная документация для тех, кто хочет изучать FRP

Время на прочтение1 мин
Охват и читатели7.7K
Доброго времени суток господа. Я работаю над документацией для RxJs. Для этого использую Gitbook, jsbin (для интерактивчиков). Это занимает довольно много времени, и если у кого-то есть желание помочь, или же предложить какой-то интересный импрувмент, то буду очень рад. В планах сделать еще интерактивную отрисовку данных, которые эмитятся через стримы. Также планирую перевести все это в будущен на русский язык и сделать мультиязычный вариант.

Ссылка на книгу.

Разбираемся с bind и bindAll в Backbone.js

Время на прочтение4 мин
Охват и читатели10K
Пользователи Backbone.js часто используют bind и bindAll методы предоставленные им библиотекой Underscore.js. В этом блоге я собираюсь обсудить зачем нужны эти методы и как они работают.
Читать дальше →

JavaScript для… настольного IP телефона?

Время на прочтение11 мин
Охват и читатели13K


Немногим известно, что IP телефоны Digium — это не совсем обычные телефоны. Казалось бы зачем производителю выпускать аппараты собственной марки на таком насыщенном и низкомаржинальном рынке? Но поверьте — оно того стоило. Помимо отличных физических характеристик: приятный пластик, яркий экран, отличные динамики и микрофон. Эти аппараты обладают своим API и вы можете написать свое приложение под них!

Кто другой может похвастаться таким функционалом?

Читать дальше →

Несколько интересностей и полезностей для веб-разработчика #24

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

Webhook


image

Webhook — это платформа для создания сайтов. Важно не путать со статическими генераторами, потому что это именно «CMS builder». Проект успешно завершил кампанию на Kickstarter 14 мая этого года, где смог собрать сумму в два раза большую, чем было необходимо. А буквально недавно состоялся релиз первой версии продукта. Webhook построен с использованием NodeJS, Grunt и Firebase для реалтайма, работает на Windows, Linux и Mac, внутри целая система виджетов со множеством вариаций на выходе, «Django-like templating» с помощью Swig JS, кроссплатформенная админ панель и еще целый ряд плюсов.
Читать дальше →

Собеседование на должность JavaScript разработчика

Время на прочтение4 мин
Охват и читатели290K


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →

Ближайшие события

Строим маршруты с помощью OpenStreetMap, OSRM и Leaflet

Время на прочтение3 мин
Охват и читатели61K
Привет, %username%! Хочу написать маленькую статейку о том, как с помощью OpenStreetMap, OSRM и Leaflet прокладывать маршруты в своем проекте. Рассказывать что представляют из себя вышеуказанные технологии я не буду — на хабре о них писалось не раз уже, статья будет маленькая и только по делу. Итак, если вы хотите строить маршруты — прошу под кат.

image
Читать дальше →

Онлайн-трансляция WebCamp 2014: Developer Day

Время на прочтение1 мин
Охват и читатели2.7K

C 21 по 24 июля в рамках Odessa Innovation Week пройдет V ежегодная конференция веб-разработчиков WebCamp 2014 по следующим направлениям: разработка, управление проектами, дизайн, интернет-маркетинг и мобильные технологии.

Команда оргкомитета впервые организовывает тестовую онлайн-трансляцию конференции. Сегодня день будет посвящен веб-разработке. В трех параллельных потоках участники обсудят актуальные вопросы по таким направлениям, как: Front-End, Back-End и Frameworks/Architecture.

Программа дня: webcamp.in.ua/developers-day.html.
Онлайн-трансляція: geekslab.co/WebCamp2014Stream. (Начало трансляции в 10.00 по Киеву).

Где же ты? Heredoc из JavaScript

Время на прочтение2 мин
Охват и читатели9.6K
console.log(hered0c);
Меня нет
Совсем нет
Полностью - до конца!
Меня никогда не было и не будет.
И не спрашивайте на форумах где я,
Там меня всегда бьют и обижают потом!
Они не понимают меня и не знают где я... © HEREDOC
Кто здесь??

NPM 2.0.0 & передача аргументов в run-script

Время на прочтение1 мин
Охват и читатели5.6K
22 июля случилось небольшое, но знаментаельное событие: был принят пулл-реквест, что добавлял поддержку передачи произвольных аргументов в ваши npm script'ы. Уже появился альфа-релиз npm весрии 2.0.0, что включает эту возможность.
Читать дальше →

Немного о npm-scripts

Время на прочтение2 мин
Охват и читатели29K
Если кто не знаком с предметной областью, то NPM — node package manager (аналог bundler/composer/easy_install/nuget) – средство для управления зависимостями в вашем Node.js проекте, что по совместительсву может выполнять некоторое количество полезных функций. Написан Айзеком Шлютером, который достаточно радикальным образом продвигал в начале своей истории (рассылая всем существующим Node.js проектам пулл-реквесты с добавлением package.json — манифестом зависимостей).

Все нижеприведенные вещи известны многим, но для некоторых это может стать приятным открытием, что сэкономит некоторое количество набираемых в символов.
Читать дальше →

С большой силой приходит и большая ответственность — техника безопасности в AngularJS

Время на прочтение3 мин
Охват и читатели19K
image

Несомненно, ангуляр даёт вам силу. Но пользоваться ей нужно с умом. Я постарался сформулировать три простых правила, которые я много раз нарушал и страдал от этого.
Читать дальше →

Функциональный Javascript. Пишем свои линзы, часть 1

Время на прочтение7 мин
Охват и читатели29K
Привет, хабр.
В данной статье мы познакомимся с линзами, узнаем для чего они нужны, а также реализуем их на JavaScript.

Зачем нужны линзы


Начнем, пожалуй, с ответа на вопрос, зачем же нужны линзы.

В функциональном программировании широко используются неизменяемые структуры данных. Работа с ними значительно отличается по сравнению с изменяемыми данными.

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