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

JavaScript *

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

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

Начинаем работать с Ember.js

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


В наши дни сложные Javascript-приложения можно увидеть повсюду. Со временем они становятся все сложнее и уже неприемлемо просто писать цепочку callback-функций на jQuery. Javascript-программисты постепенно узнают то, что обычные разработчики знали уже несколько десятилетий. Организация и эффективность может сыграть важную роль при разработке. Таким образом, такие MVC-фреймворки на Javascript, как Backbone, Knockout и Ember появились для того, чтобы заполнить пустоту между начинающими, средними и опытными разработчиками. Они предлагают разные возможности и функционал, который подойдет разным людям, в зависимости от их потребностей.
Читать дальше →

3D в вебе — выбор технологии

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

Вместо предисловия


imageЭто первая статья из небольшой серии, которая написана разработчиками трехмерного javascript-движка на базе WebGL. Эта статья — обзорная, но в последующих планируется рассказать уже о самом движке и его возможностях — с примерами, демонстрациями и проч. И автор будет благодарен, если кто-нибудь поделится для него инвайтом, чтобы он мог не только отвечать на возможные вопросы в комментариях, но и последующие статьи на эту тему мог бы публиковать не через меня, а самостоятельно.

Обзор 3D в Web


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

Маскирование числовых значений с использованием autoNumeric и Knockout

Время на прочтение5 мин
Количество просмотров7.5K
В общем передо мной встала задача — переписать один из контролов, построенный на репиттере и сделать его легче, отзывчивее для клиента. При этом решил использовать knockout. Внутри для отображения цифровых данных использовались DevExpress'овские текстовые поля, они очень удобны и служили исправно, но тут встал вопрос, а как же при замене на обычные текстовые поля, я смогу добавить маску.

Подробности далее ...

Пишем простую карту с помощью Nokia Maps JS API

Время на прочтение7 мин
Количество просмотров7.9K
Привет, Хабр!

Сегодня мы расскажем вам как использовать на веб-сайтах карты Nokia с помощью Nokia Maps JS API. Сервис «Карты Nokia» имеет не только очень простой в применении API, но ещё и отличную детализацию карт с огромной базой географических объектов, которая постоянно пополняется.

Больше информации про технологические возможности «Карт Nokia» вы можете узнать из выступления Сергея Руденко с Nokia Developer Days 2012 (ссылка), а мы приступим к описанию некоторых возможностей использования именно Nokia Maps JS API на примере интеграции карт и использовании возможностей геолокации и прокладывания маршрута. Выглядеть это будет примерно так:



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

Отображение зависимых данных на примере каскадных выпадающих списков

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

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

Отображение зависимых данных, на примере использования двух ниспадающих списков, посредством knockout

Время на прочтение5 мин
Количество просмотров3.2K
В этом посте я хотел бы показать основные возможности knockout по работе с данными в раскрывающихся списках (тег ). Как оказалось тут есть свои мелочи, на которые стоит обратить внимание при использовании, такого мощного инструмента как knockout.

Добро пожаловать под кат!

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

Leaflet 0.4 — новая версия открытой JS-библиотеки для интерактивных карт

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


После пяти с половиной месяцев разработки с момента выхода предыдущей версии, очень рад наконец представить вам Leaflet 0.4 — новую версию легковесной JavaScript-библиотеки для интерактивных карт, которая одинаково хорошо работает и на десктопных браузерах, и на мобильных устройствах.

Этот релиз, к которому приложило руку 33 разработчика, несёт в себе более простой, удобный API и громадное множество улучшений и исправлений вместе с масштабным обновлением документации, запуском официального блога и страничкой плагинов. Давайте рассмотрим улучшения по порядку.
Читать дальше →

JavaScript-фреймворк Meteor получил 11 миллионов долларов инвестиций

Время на прочтение2 мин
Количество просмотров12K
Необычный и амбициозный фреймворк Meteor, пребывая в статусе preview (текущая версия — 0.3.8) уже получил 4500 подписчиков на Гитхабе и восторженные отзывы сооснователя Facebook Дастина Московица. Теперь на него обратили внимание акулы венчурного капитализма. Основным инвестором стал фонд Andreessen Horowitz. По словам Джефа Шмидта — CEO Meteor Development Group, одиннадцать с лишним миллионов гарантируют активную разработку проекта на протяжении ближайших нескольких лет.


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

JsRender: Новое поколение jQuery Templates

Время на прочтение3 мин
Количество просмотров37K
Буквально пару месяцев назад, мы начали переписывать весьма крупный сайт, с момента прошлого крупного релиза прошёл не один год, конечно, сайт дорабатывался, правились баги и в итоге в настоящее время создаётся новая версия. В ней будет активно использоваться AJAX, поэтому весьма остро стоял вопрос с генерацией контента на клиенте, полученного в формате JSON. Прошлые шаблоны были собственной разработки, так как на то время вариантов было не так много, которые по разным причинам не подходили, базировались наши шаблоны на jquery, с помощью атрибутов происходило заполнение.

Прежде всего было решено провести тест, при генерации списка из 1500 элементов было получено превосходство в 20 раз, похожие результаты показывает сравнение с jQuery Template (страница с тестами).
Читать дальше →

The Modal — правильные модальные окна

Время на прочтение2 мин
Количество просмотров180K
Очень часто модальные окна и диалоги делаются при помощи плагинов jQuery. Например, SimpleModal или jqModal. К сожалению, все они, в варианте по умолчанию, работают неправильно.

Что же такое «правильно»?

Модальное окно по определению блокирует работу пользователя с родительским окном до тех пор, пока пользователь его не закроет. То есть:

  1. Пользователю нельзя позволять прокручивать страницу под ним.
  2. При этом, если содержимого в модальном окне очень много, нужно позволить прокручивать содержимое.


По этому принципу работает просмотр фото в Facebook и Вконтакте и, я считаю, что для модальных окон это правильный вариант.

Чтобы не мучать вас заранее деталями реализации, покажу сначала демо плагина jQuery: http://rmcreative.ru/playground/modals_plugin/demo.html.

Ну а теперь немного про реализацию.
Читать дальше →

JScriptInclude Gear v 0.1.0 — механизм каскадного импорта скриптов/библиотек. (Реванш)

Время на прочтение8 мин
Количество просмотров1K
Доброго времени суток уважаемые хабражители.

Предлагаю Вашему вниманию пост-реванш, под названием JScriptInclude Gear механизм каскадного импорта скриптов/библиотек. Предыдущий пост презентующий JScriptInclude Gear на данный момент самозабвенно убран в черновики, теперь он совсем не актуален, не смотря на то, что предыдущая презентация была довольно сурово воспринята хабра-яваскриптерами, а там все таки было за что :), очень много опалы было вызвано непониманием сути, а именно того, что
JScript(WSH) != JavaScript(браузеры), в связи с чем JScriptInclude Gear возводился в ранг костылей, велосипедов, «было уже», «инахренаже» и т.д.
Я тогда очень хотел поделиться своим решением, но совсем не представлял как, как сделать его «вкусным» и понятным, но мне кажется сейчас у меня это получилось.
Тем не менее «Отхабренное» дело получило ход, люди пишут, люди пользуются, людям нравится. За прошедшую неделю я получил достаточно много отзывов, что стимулировало меня работать над своим решением, в итоге оно преобразилось до неузнаваемости. Спасибо всем, кто вышел вместе со мной на линию огня.

Тем же кто не знает о чем собственно речь — маленькое, завлекающее предисловие:
JScriptInclude Gear — это механизм каскадного импорта скриптов/библиотек предназначенный для использования в скриптах автоматизации написанных на языке JScript интерпретируемых технологией WSH(Windows Script Host) в окружении семейства операционных систем Windows. Дополнительно предоставляющий функционал для организации скриптов в виде базовых модулей, поддерживающий их определение в файлах конфигурации и их последующий вызов по псевдонимам и так далее, и тому подобное :)

Тех же, кто уже читал о JScriptInclude Gear в предыдущем посте, не смотря на, может быть, оставшийся негатив, я откланявшись попрошу остаться, уверяю Вас — здесь будет кое-что интересное, ведь изменилось почти всё: механизм теперь экспортируется COM-компонентой и подключается к Вашему скрипту двумя строками кода, подготовлен SFX-пакет для установки механизма в систему с автоматической регистрацией компоненты и автоматической конфигурацией необходимых путей, документация переделана «от и до», и теперь представлена в виде HTML, пример теперь стартует без «танцев с бубном», а в качестве приятного бонуса, в нем представлено несколько полезных модулей, которые описаны в документации (они, все-же являются примером использования и «не претендуют»), и естественно «подвылизан» сам код, хотя в процессе использования Вы с ним теперь собственно не сталкиваетесь.
Для тех кому неймётся, милости прошу на GitHub:
Механизм JScriptInclude Gear SFX-пакет установки.
(самостоятельный до безобразия :) )
Механизм JScriptInclude Gear сoрцы как есть.
(О развертывании в доп комментарии к последнему комиту, или в справке — раздел jsImport Object врезка «Внимание!!!»)
И все же хотелось бы, чтобы Вы прочитали оставшиеся «много букаф», хотя бы до пункта Возможности JScriptInclude Gear:

Заинтересовавшихся милости прошу под хабракат…
Читать дальше →

Файлы библиотек да будут названы по сокращённым именам объектов, ими определяемых

Время на прочтение1 мин
Количество просмотров801
Вот лайфхак: для сокращения имён файлов (а значит — для ускорения их прочтения и узнавания) можно называть файлы с джаваскриптовыми библиотеками в соответствии с сокращённым именем того основного объекта, который той или иной библиотекою определяется.

Так, например, файл jQuery можно назвать «$.js».

Так, например, файл Underscore.js можно назвать «_.js».

Так, например, файл Underscore.string можно назвать «_.str.js».

Ну и так далее.

Простой bookmarklet как средство очистки содержимого веб-страницы от нежелательных элементов

Время на прочтение2 мин
Количество просмотров1.9K
JavaScript использую достаточно давно, букмарклеты рассматривал когда-то в познавательных целях, но чтобы использовать,- необходимости не было.

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

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

Ovation. Таблица аккордов своими руками с помощью JS и HTML5

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

Идея


Задался я как-то целью слепить свою собственную вебовую табличку аккордов с целью рассказать человеку, с чем эти самые аккорды едят.

Да не простую мне хотелось табличку, а фичастую, чтобы она умела:
  • проигрывть выбранный аккорд
  • показывать схему аккорда
  • отображать аккорд на виртуальной синтезаторной клавиатуре
  • строить достаточно удобные гитарные аппликатуры аккордов
  • легко переноситься с одной машины на другую
И вот как я это сделал…
Читать дальше →

jQuery CoreUISelect — плагин для стилизации селекта

Время на прочтение1 мин
Количество просмотров19K
На Хабре уже проскальзывали обзоры плагинов для стилизации селекта (раз и два)

Возможно буду заброшен помидорами за изобретение очередного велосипеда, но все текущие реализации меня не устраивали. Да, отличный плагин chosen, но в нем чрезмерное количество ненужного мне функционала. ikSelect, да, почти то что надо, но мне не понравилась генерируемая разметка.



Итак, задача — сделать плагин с блэкджеком и ш… для стилизации селекта, который по максимуму повторяет поведение стандартного. А это навигация с клавиатуры, автоподгонка ширины дропдауна, поддержка optgroup, автокомплит и самое главное полная кастомизация, включая скроллбар*.
Читать дальше →

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

Время на прочтение7 мин
Количество просмотров60K
(Написано в мае 2012 специалистом по фронтенду и особенно, по медиаформатам, разработчиком нескольких опенсорсных проектов и happyworm.com и отражает современное состояние дел с поддержкой браузерами новых медиатегов и форматов. --прим. перев.)

Это продолжение моей (автора, Марка Боаса) статьи 2009 года "Native Audio in the browser" (англ., и дополненной в октябре 2010 --прим. перев.), которая объясняет основы работы аудио в HTML5. Возможно, стоит почитать сначала её, если вы хотите почувствовать работу тега <audio> и связанного с ним API. (Есть русский перевод, но в варианте от 2009 года.)

Теперь, через 2.5 года, пришло время посмотреть, как идут дела. При том, что многие продвинутые аудио API активно разрабатываются, улучшается воодушевляющая нас нативная браузерная поддержка звука — самое время вернуться в увлекательный мир тега <audio>.
Читать дальше →

Grunt, инструмент для сборки javascript проектов

Время на прочтение4 мин
Количество просмотров133K
Grunt — это инструмент для сборки javascript проектов из командной строки с использованием задач. Релиз вышел совсем недавно, автор Ben «Cowboy» Alman, проект есть на github. В этой статье я рассмотрю основы Grunt, его установку и использование.
Читать дальше →

Как сделать группу инпутов удобной

Время на прочтение2 мин
Количество просмотров47K
Когда я работал над сервисом заметок jotsky.com, еще до работы в Островке, надо было сделать ввод телефонного номера из двух инпутов. Примерно такой:



Я сделал навигацию с помощью стрелочек. Сделал, чтобы по мере заполнения фокус переключался к следующем инпуту. А вот сделать правильную вставку из буфера обмена у меня никак не получалось.
Читать дальше →

Java2Js: Инструменты и шаблоны

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


Кажется, что Js — это «просто скриптовый язык» на котором я по-быстрому добавлю нужные фичи на странице, не сильно заботясь о качестве кода. Когда-то это было верным. Даже текущие стандарты Js и Html в целом располагают к этой философии.
Но времена изменились! Теперь на Js создают сложные и запутанные веб-приложения, которые просто не могут не столкнуться с проблемами своих «старших братьев» (серверных приложениях написанных на Java, C# и т.д.). А значит, чтобы не погрязнуть в тысячах строк «спагетти-кода», требуется отказаться от философии «просто скрипт». Нужно воспринимать Js как инструмент, с которым требуется создать сложную, модульную и масштабируемую систему.

В рамках новой философии «серьезного языка, для серьезных задач» я хочу начать цикл небольших статей о мире Js со стороны Java разработчика. Начнем с инструментов и различных шаблонов разработки.

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

Золотое правило производительности

Время на прочтение3 мин
Количество просмотров5.4K
От переводчика: Это перевод заметки товарища по имени Steve Souders, который очень плотно занимается вопросами производительности веб-сайтов и даже написал пару неплохих книг на эту тему.

Вчера я проводил семинар в Google Ventures для некоторых из инвестируемых ими компаний. Я не знал насколько подготовленной в вопросах производительности будет аудитория, так что я сделал обзор вопросов, связанных с производительностью, начиная с первых моих выступлений в 2007 году. Уже несколько лет я не рассказывал о методах улучшения производительности, описаных в моем блоге "High Performance Web Sites". Я прошелся по таким вещам, как Меньше HTTP-запросов, Добавление заголовка Expires и Gzip.

Но мне надо было вернуться еще дальше. Думая о тех временах, когда еще не существовало конференции Velocity и самого понятия WPO, я решил, что должен пояснить почему я занялся именно клиентской оптимизацией. Я нашел слайды, поясняющие «Золотое правило производительности»: 80-90% времени ожидания пользователем занимает работа браузера.

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

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

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