Все потоки
Поиск
Написать публикацию
Обновить
214.99

JavaScript *

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

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

Noty — необычайно гибкий плагин jQuery для вывода уведомлений

Время на прочтение1 мин
Количество просмотров31K

Почти месяц назад вышла вторая версия прекрасного и замечательного jQuery Notification plugin для вывода самых разнообразных уведомлений на сайте, странно что Хабр вообще обошёл его стороной, исправлю ситуацию.
Читать дальше →

Bart Chalkboard Generator

Время на прочтение5 мин
Количество просмотров12K
Здравствуйте.
Мне бы хотелось рассказать про мой «Bart Chalkboard Generator».image
Я уверен, что большинство из вас знают сериал «The Simpsons», и вы помните что почти в каждой новой заставке Барт писал на школьной доске что-то новое, типа: «They are laughing at me, not with me». А в интернете часто всплывает картинка с текстом: «I will use google before asking dump questions». И вот однажды я подумал, почему бы не создать простой генератор подобных картинок, да ещё и на Html5, что бы попрактиковаться?
Читать дальше →

Обзор JS-фреймворков. Путешествие через джунгли JavaScript MVC. Ч. 1

Время на прочтение11 мин
Количество просмотров114K
(от 27 июля 2012)
При написании нативного веб-приложения легко начать чувствовать себя богом, способным работать просто с библиотекой работы с DOM (такой как jQuery) и горсткой сервисных плагинов. Вскоре возникает проблема в виде груды вложенных возвратных функций jQuery и разбросанных DOM-элементов без всякой структуры вместо приложения.

Короче, мы застреваем в спагетти-коде. К счастью, есть современные JS-фреймворки (библиотеки, задающие, кроме функций, правила организации кода --прим. перев.), помогающие поддерживать структуру и организованность в проекте, облегчающие ремонтопригодность в будущем.

■ Что такое MVC или, лучше сказать, MV*?


Эти современные библиотеки дают разработчикам простой путь к организации кода, используя вариации паттерна проектирования, известного как MVC (Model-View-Controller). MVC разделяет задачи в приложении на 3 части:
Читать дальше →

Лексическая область видимости функций в JavaScript

Время на прочтение5 мин
Количество просмотров39K
Почитав недавние посты для новичков JavaScript, решил написать небольшой топик про один интересный вопрос, которого ни один из авторов пока не касался, а именно, вопрос про область видимости функций в JavaScript.
Читать дальше →

Ключевое слово this в javascript — учимся определять контекст на практике

Время на прочтение4 мин
Количество просмотров185K
По просьбам некоторых читателей решил написать топик про контекст в javascript. Новички javascript часто не понимают значение ключевого слова this в javascript. Данный топик будет интересен не только новичкам, а также тем, кто просто хочет освежить данный аспект в памяти. Посмотрите пример ниже. Если вы затрудняетесь ответить на вопрос «что будет выведено в логе» хотя бы в одном из пунктов или хотите просто посмотреть ответы — добро пожаловать под кат.

var f = function() {
    this.x = 5;
    (function() {
        this.x = 3;
    })();
    console.log(this.x);
};

var obj = {x: 4, m: function() {
    console.log(this.x);
}};


f();
new f();
obj.m();
new obj.m();
f.call(f);
obj.m.call(f);

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

HTML5 Audio — состояние дел. Часть 2

Время на прочтение9 мин
Количество просмотров21K
(Статья специалиста по фронтенду и медиатегам Марка Боаса (Mark Boas) от 8 мая 2012. Перевод заключительной части. Начало дало понять, что придётся попотеть, прежде чем освоить всю кухню, а ведь это ещё развивается… Не ждите коротких рецептов.)

Содержание первой части:
■ Типы MIME
  ● Серверная часть
  ● Клиентская часть
■ Заранее узнать тип аудио поможет .canPlayType (наверное)
■ Текущая поддержка кодеков в браузерах
■ Форматы контейнеров и расширения файлов
■ Мы имеем тег <audio> и не боимся его использовать!
■ Буферизация, поиск и интервалы воспроизведения
  ● Атрибут buffered
  ● Объект TimeRanges
    ● Атрибуты seeking и seekable
Итак, на чём мы остановились? На свойстве seekable

Библиотечка datef — форматирование дат

Время на прочтение2 мин
Количество просмотров3.8K
Разрешите представить datef — мини-JS-библиотеку вывода даты в разных форматах.
Вкратце опишу имеющиеся фичи:
  • Выполняет одну и только одну задачу: вывод дат в разных, потребных юзеру форматах;
  • Работает в nodejs и в браузерах. В браузерах может работать как requirejs/amd-модуль;
  • Не мусорит в прототипах встроенных объектов;
  • Написана в strict mode;
  • Обильно аннотирована в js-doc-формате;
  • Не имеет внешних зависимостей.

Примеры использования:
datef('dd.MM.YY', new Date()); // "13.08.12"
datef('dd.MM.YY'); // второй аргумент необязателен — берется «сейчас»

var d = new Date();
d.setFullYear(2045);
datef('dd.MM.YYYY', d); // "13.08.2045"

// есть несколько заранее заданных форматов:
datef.formatters.ISODateTimeTZ(); // "2012-08-13T15:01:29 -04:00"

// можно определить и сохранить свой…
datef.register('myFormat', 'd.M.YY');
datef.formatters.myFormat(); // "13.8.12"

// или просто получить его как отдельную функцию
var myFormat = datef.createFormatter('d.M.YY');

Копание во внутренностях и лирические отступления

MaskJS, поговорим о шаблонном движке, или новом велосипеде

Время на прочтение5 мин
Количество просмотров4.2K


Вот, наконец дошли руки поделиться с людьми одним из множества велосипедов (как сейчас называют личные наработки). До хабраката пару плюсов и минусов этого решения:
Из плюсов:
  • скорость jsperf (тест с прекомпилированными шаблонами: jsperf)
  • расширяемость := кастомные контролы, трансформация шаблонных данных
  • data bindings
  • компиляция в json для дальнейшего кэширования
  • приятный синтаксис (без мешанины логики и структуры)

Из недостатков:
  • шаблонные данные могут находиться только в атрибутах и литералах (хотя, поверте — этого достаточно)

Если тема интересная —
Читать дальше →

Вещи, которые я не знал о WebKit inspector

Время на прочтение2 мин
Количество просмотров5.7K
Прочитав статью jtaby.com/2012/04/23/modern-web-development-part-1.html я узнал несколько полезных вещей, напишу-ка я их здесь дабы не забыть.
Читать дальше →

Релиз jQuery 1.8

Время на прочтение11 мин
Количество просмотров13K
(Опубликовано на сайте разработчиков 9 августа 2012)
Август стал немного жарче из-за того что зарелизилась библиотека jQuery 1.8! Вы можете брать код из CDN на сайте jQuery:

  code.jquery.com/jquery-1.8.0.min.js (минфицированный и сжатый код — для рабочих версий сайтов)
  code.jquery.com/jquery-1.8.0.js (несжатая библиотека, для отладки)

Как обычно, Google и Microsoft CDNs будут тоже раздавать эти файлы (не спрашивайте нас, когда — мы не знаем!). Если очень хочется, воспользуйтесь нашей копией из jQuery CDN.

Мы не ждем от вас сообщения об ошибках в релиз-версии, так как было несколько бета-версий и релиз-кандидат; у вас было много возможностей для тщательного тестирования (ха-ха, шутка). Мы знаем, что слишком многие из вас ждали финального релиза. Так что теперь нет никаких оснований ждать, и вы можете узнать, нет ли ошибок, о которых сообщалось ранее в багрепортах.
UPD 31.08.2012: jQuery 1.8.1.
Читать дальше →

Браузерный API для регистрации на сайте и совершения моментальных платежей

Время на прочтение2 мин
Количество просмотров3.9K
Я бесконечно уверен, что все люди ненавидят формы и считают их заполнение вещью противоестественной и ненужной. Тем более, что на дворе уже 12 лет как XXI век.

Представляют Вашему вниманию перевод небольшой заметки Алекса Маккава (Alex Maccaw, JavaScript-программиста, (со)автора некоторых книг (даже бесплатных) издательства O'Reallyю) о концепции браузерного API который бы избавил разработчиков от различного рода велосипедописания, а пользователей — от рутинных операций по заполнению форм регистрации и оформления платежей.

Алекс, автор заметки, должен отождествляться у читателя с местоимением «Я».
Читать дальше →

Про jQuery и велосипеды — мое дополнение

Время на прочтение6 мин
Количество просмотров64K
Сразу спешу сообщить вам, что я никоим образом не связан с автором предыдущей статьи. Однако, прочитав ее и увидев такой положительный отклик сообщества на статью, я тоже вдохновился и решил добавить немного своих наблюдений и знаний, к тому же это может послужить моей входной точкой в круги хабрасообщества.

Для затравки начнем с простого.
Читать дальше →

В Firefox 15 появилась удаленная отладка для мобильных устройств

Время на прочтение1 мин
Количество просмотров4.5K


Как известно в Firefox начиная с 10ой версии, появился свой нативный отладчик. И теперь, вслед за GoogleChrome, в Firefox 15 появится удаленная отладка для мобильных устройств. Уже есть видео (EN)с демонстрацией настройки и подключения отладчика. Для этого вам нужно поставить Firefox beta

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

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

Пишем мэшап с помощью Nokia Maps JS API и Twitter Search API

Время на прочтение8 мин
Количество просмотров3.5K
На прошлой неделе Карты Nokia были интегрированы в самый популярный фотохостинг Flickr, в результате чего получился интересный мэшап, где на карте можно посмотреть фотографии с проставленными геотегами.



Мы решили продолжить тему мэшапов на основе Карт Nokia, и сегодня покажем, как с помощью связки Nokia Maps JS API + Twitter Search API отобразить на карте интенсивность использования тех или иных хештегов в Twitter. Выглядеть такой мэшап будет так, как на картинке ниже.
Читать дальше →

Велосипеды на Javascript и jQuery

Время на прочтение4 мин
Количество просмотров77K
В очередной раз открыв код коллег и ужаснувшись, я решил написать эту статью. Надеюсь для кого-нибудь это будет полезным, заодно и мне будет проще новичкам объяснять что у них в коде не так, просто кинув ссылку на эту статью.
Безусловно количество таких вещей очень и очень велико, поэтому в статье ограничусь лишь некоторыми.
Читать дальше →

Оптимизация длинных списков логических значений на JavaScript

Время на прочтение5 мин
Количество просмотров4.1K
Очень часто в веб-разработке (и в программировании вообще) необходимо сохранить длинный список логических значений (yes/no, true/false, checked/unchecked и подобные) в виде строк. К примеру, вы захотите записать такие данные с помощью localStorage, в cookie, или отправить их в теле HTTP запроса. У меня возникала такая необходимость сотни раз.
Читать дальше →

arcticModal — jQuery-плагин для модальных окон

Время на прочтение1 мин
Количество просмотров61K
Для реализации модальных окон и диалогов существует немало плагинов jQuery. Перепробовав многие из них, я не нашёл ни одного, который бы достаточно просто и, что важно, правильно решал поставленную задачу.

Недавно SamDark писал о правильных модальных окнах и представил сообществу плагин The Modal. Полностью согласен с его виденьем модальных окон, но в представленном плагине не хватало функционала. У меня уже давно из проекта в проект кочевали наработки по этой же теме, вот решил тоже оформить их в виде плагина.
Подробнее

Киберпанк, матрицы и canvas

Время на прочтение7 мин
Количество просмотров4.3K

I. Предисловие.



Когда-то давно мне запал в память эпизод из киберпанковского романа: один герой показывает другому экран, на котором быстро сменяют друг друга пиксели. Каждое состояние экрана представлено определённым числом, программа постепенно перебирает варианты.

Можно представить, что рано или поздно на таком экране могли бы появиться разные удивительные вещи: страница из «Войны и мира», «Джоконда», первые такты «Лунной сонаты», гениальное решение известного уравнения, фотография любого человека, эта страница Хабра, сообщение о безвестном событии прошлого или подробное предсказание будущего.

С тех пор я периодически пытался сделать что-то по касательной, были какие-то мелкие поделки на Perl. А недавно захотелось сделать что-то подобное на JavaScript.

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

AngularJS — фреймворк для динамических веб-приложений от Google

Время на прочтение6 мин
Количество просмотров138K
AngularJS создан для тех разработчиков, которые считают, что декларативный стиль лучше подходит для создания UI, а императивный — для написания бизнес-логики.

Дзен Angular


  • Хорошо отделять манипуляцию DOM-ом от логики работы приложения. Это существенно улучшает тестируемость кода.
  • Хорошо считать, что автоматизированное тестирование приложения настолько же важно, насколько и написание самого приложения. Тестируемость очень сильно зависит от того, как структурирован код.
  • Хорошо отделять разработку клиентской части от серверной. Это позволяет вести разработку параллельно и улучшает повторное использование на обеих сторонах.
  • Хорошо, когда фреймворк ведет разработчика по всему циклу разработки приложения: от проектирования UI через написание бизнес-логики к тестированию.
  • Хорошо, когда распространенные задачи становятся тривиальными, а сложные — упрощаются.


AngularJS представляет собой комплексный фреймворк. В стандартной поставке он предоставляет следующие возможности:
  • Все, что вам нужно для создания CRUD-приложений: data-binding, базовые директивы для шаблонов, валидация форм, роутинг, deep linking, повторное использование компонентов, dependency injection, инструменты для взаимодействия с серверными (RESTful) источниками данных.
  • Все, что вам нужно для тестирования: средства для модульного тестирование, end-to-end тестирования, mock-и.
  • Шаблон типового приложения, включающего в себя структуру каталогов и тестовые скрипты.


AngularJS разрабатывается сотрудниками Google и используется, как минимум, в одном сервисе Google — DoubleClick.

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

Бесплатные книги по JavaScript

Время на прочтение2 мин
Количество просмотров66K

Javascript Enlightenment


Cody Lindley


Уровень знаний: средний
Тщательный обзор мировоззрения JavaScript через разбор встроенных объектов и нюансов.

Открыть

Eloquent Javascript


Marijn Haverbeke


Уровень знаний: начинающий
Вводная книга по JavaScript и программирование в целом.
Открыть

Building A JavaScript Framework


Alex Young


Уровень знаний: продвинутый
Избранные статьи из цикла«Let’s Make a Framework».
Открыть

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

Вклад авторов