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

JavaScript *

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

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

Работа с локальным хранилищем, как с объектом? Легко!

Время на прочтение3 мин
Количество просмотров15K
Когда появился localStorage я был рад, как слон, но, немногим позже, после подробного изучения вопроса, я несколько разочаровался: там могут храниться только строки, а об объектах можно было забыть. Приходилось превращать их в строки для хранения, приходилось обратно конвертировать строку в объект для работы с ним, затем опять конвертировать в строку, чтоб сохранить. Не спорю, есть замечательные библиотеки, позволяющие манипулировать хранилищем максимально просто, но вызывать функции как-то не очень хотелось.

localStorage = { a: { b: 1 }, c: { d: 2 } }
localStorage.a.b = 3;

Круто было бы, не так ли?

Относительно давно, где-то около полугода назад я задался вопросом: как же, блин, сделать так, чтоб можно было работать с localStorage вообще без функций, чисто как с объектом. Challenge accepted!

Как говорит небезызвестный Геша: “Всё, я здзелал”.

Дальше читать не обязательно. Более разумное решение находится здесь: habrahabr.ru/post/144998

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

eachDeferred — отложенная обработка коллекции, one by one

Время на прочтение2 мин
Количество просмотров2.1K
В ходе разработки текущего энтерпрайз-проекта, понадобилось реализовать отложенную обработку коллекции элементов jQuery — имелся набор виджетов, содержимое которых нужно было загрузить по очереди, причем загрузка происходила асинхронно. Пришлось написать небольшое расширение к $.fneachDeferred.
Читать дальше →

Пакеты в JavaScript — jpack

Время на прочтение2 мин
Количество просмотров1.8K
Разговор пойдет именно про JavaScript и ничего больше.

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

Улучшаем «бесконечный скроллинг»

Время на прочтение2 мин
Количество просмотров34K
В 2011 году очень модно было (по-моему, эта мода пошла от Фейсбука) делать у себя на сайтах «бесконечный скроллинг»: это когда пользователь крутит-крутит колесом мыши, и всё новые результаты поиска подгружаются Аяксом внизу страницы, превращая обычный скроллинг в бесконечный и вызывая у столкнувшегося с этим в первый раз пользователя «когнитивный диссонанс».

Также недавно я видел на этом сайте статью, в которой автор выражал своё недовольство «бесконечным скроллингом» и призывал использовать старую добрую «паджинацию».
Читать дальше →

Отчет с конференции Front Trends 2012

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


Конференция проходила 26-27 апреля в Варшаве, это была вторая конференция (Lea Verou о первой конференции) из серии, и судя по слухам и успешности — не последняя.

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

Сайт конференции, оф. хэштег #FrontTrends, так же организаторы обещали вскоре выложить видео записи презентаций (как появится информация, обязательно обновлю пост).
Читать дальше →

Все JavaScript библиотеки в одном месте

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

Jswiki — это проект на github, который постарался собрать все достойные JavaScript библиотеки и ресурсы. На страницах описания библиотек, так же собраны ссылки на статьи для начинающих, чтобы читатель мог как можно быстрее начать использовать ту или иную библиотеку.

Впервые увидел настолько полную wiki по JavaScript либам, не смог с вами не поделиться.

Backbone.js и routes без хэшей

Время на прочтение3 мин
Количество просмотров3.4K
Практически все, кому приходилось работать с backbone, представляют себе, что это за штука такая — Router. Конечно, в приложении можно обойтись и без него, но удобство работы с приложением сильно проиграет.

Итак, роутер определяет, какую функцию (контроллер) следует использовать, опираясь на URL в строке браузера. Или, если быть точным, на хэш. Т.е. вы могли понаставить в интерфейсе своего приложения ссылок вида:

<a href="http://myapp.com/catalog/#action1">Сделать что-то полезное</a>

или даже

<a href="http://myapp.com/catalog/#action1/42">Сделать что-то полезное с параметром</a>

и всё прекрасно работало. Пользователь, в свою очередь, мог сохранить каждую из этих ссылок, и, в последствии, перейти по ним, сразу же активировав нужную функциональность. Единственный негативный момент во всём этом великолепии — наличие символа "#" (решетка). Не то, чтобы она была плоха сама по себе, но читабельность и «красивость» (с задних рядов мне ещё кто-то про RESTful что-то подсказывает) URL она портила.
Читать дальше →

Написание сложных интерфейсов с Spine.js

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

Введение в Spine.js


Spine представляет собой небольшой фрэймворк, который позволяет работать по схеме MVC, создавая приложения непосредственно на языке JavaScript, что обеспечивает логическое разделение кода, наследование моделей через классы и расширения. Также во многом этот инструмент базируется на Backbone.js API, так что те разработчики, которые имели дело с данным фрэймворком, без труда разберутся и в Spine (однако существует целый ряд существенных различий). Spine.js может работать совместно с HTML5 и асинхронными запросами сервера.
Читать дальше →

Йаззь и Джава

Время на прочтение1 мин
Количество просмотров24K
2 февраля 2012 года микроблоггерка, действующая под псевдонимом «Лоличка», попросила:

— Если уж вы произносите «Java» как «Ява», то будьте любезны говорить не «jazz», а «йаззь».

(Конец цитаты.)

Судя по более чем полусотне ретвитов, этот пример про джаз и язя (опирающийся на известный видеомем) получился наглядным.

Очевидно, он в той же мере касается и джаваскриптов.

Фреймворк Autodafe — работа с моделями

Время на прочтение1 мин
Количество просмотров734
Вышла версия 0.3 node.js фреймворка для разработки веб приложений Autodafe.

У фреймворка появился сайт autodafe.ws, который стремительно обрастает документацией и статьями. (Документация на сайте генерируется автоматически из кода, задокументированного по правилам jsdoc. Поэтому если вы хотите быстро поднять сайт с документацией вашего проекта, можете спросить меня «как?».

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

Для тех, кто еще не знает про фреймворк

Saga: проверяем покрытие кода тестами

Время на прочтение2 мин
Количество просмотров3.3K
Если вы пишете на javascript и покрываете код юнит-тестами, то, вполне вероятно, вам будет интересно насколько хорошо он покрыт. А если в проекте используется Maven, то хочется получать эту информацию при каждой сборке.

Итак, Saga — анализатор покрытия кода со вкусностями:
  • работает с большинством тест-фреймворков
  • консольная версия
  • maven-плагин версия (на официальном централе)
  • красивые и удобные отчёты



Где скачать и как использовать

Виджет для Android на JavaScript за 15 минут на примере Хабра-Кармы

Время на прочтение5 мин
Количество просмотров13K
Сразу говорю, кармавиджет — вовсе не основная цель статьи. В этой статье я хочу представить широкой общественности способ быстрого создания информационных виджетов для Android на JavaScript всего лишь на примере кармы и рейтинга хабра. Виджет будет смотреться примерно так:



Виджет будет представлять собой плагин для программы AnyBalance (Android), основная идея которой — собрать общую базу способов извлечения балансов и прочих параметров из личных кабинетов различных провайдеров, например, балансов на сотовых телефонах, интернет провайдерах и т.д. Эти плагины (будем их дальше называть «провайдерами») пишутся на JavaScript и имеют открытый исходный код. Сейчас база AnyBalance содержит около 80 провайдеров, но постоянно расширяется. И хабрахабр там будет не лишним :)
Читать дальше →

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

Что у нас «Лучшего» на сегодня?

Время на прочтение3 мин
Количество просмотров967
К вопросу о том, нужно ли вводить коэффициенты тематики статей, чтобы Хабр более соответствовал той идее, с которой он приобрёл популярность.

Сегодня, вечером пятницы (после которой будет ещё один рабочий день, поэтому не совсем пятница, но всё же) имеем такую картину популярности статей на Хабре, с комментариями по типу статей:
Лучшее за 24 часа (17:00 MSK)


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

Расширение для jQuery: Execute Object

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

Плагин позволяет передавать команды манипуляции ДОМом в одном объекте, то есть заменить много вызовов методов одним вызовом функции.

Использование


$.executeObject({"#my_div": ["text", "новый текст"]})   // можно передать объект
$.executeObject('{"#my_div": ["text", "новый текст"]}') // а можно и JSON

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

Внутренности jQuery. Поиск кода, выполняемого по событию

Время на прочтение4 мин
Количество просмотров25K
Чем дальше в лес, тем толще партизаны. Нет, не так. Чем старше веб, тем больше джаваскрипта

Клиентского кода в веб-приложениях с каждым годом действительно становится все больше. Подчас это десятки файлов с сотнями функций. И что делать, когда нам нужно поменять код, выполняемый по событию (например, клик по ссылке). Как его найти? Задавшись решением этой задачи, я придумал несколько разных вариантов. Каждый из них имеет свои плюсы и минусы. И в конце статьи я предлагаю метод, который мне кажется оптимальным.
Читать дальше →

Получение кроссдоменных данных в Google Chrome через юзерскрипт (обход бага)

Время на прочтение6 мин
Количество просмотров3.4K
В Хроме и Хромиуме уже 2.5 года существует баг отсутствия кроссдоменного доступа к другому фрейму из контекстного скрипта (юзерскрипта). То, что нормально работает в скрипте обычной страницы, например, межсайтовая передача данных с помощью postMessage и что без проблем работает в других браузерах, в Хроме иногда считается «ограничением безопасности», но на самом деле это обычный и признанный баг, отмеченный с 4-й версии.
Читать дальше →

Стереоскопический эффект на 3D-картах

Время на прочтение1 мин
Количество просмотров2.8K
Если у вас есть под рукой стерео-очки, то вы можете насладиться 3D-городами на Nokia Maps. Картой можно управлять и здания кажутся очень объёмными и реалистичными.



Всё это реализовано на WebGL и в данный момент доступны самые популярные города мира.

Взаимодействие Umi.CMS и Flash посредством функций Javascript

Время на прочтение8 мин
Количество просмотров1.8K
Предположим, есть задача сделать форму фильтрации товаров на сайте примерно такого вида:



Сайт работает под управлением Umi.CMS, нужный каталог товаров создан, все свойства товаров заполнены. Нужно кроссбраузерно сверстать форму и заставить её работать. С последним трудностей не возникает, нужные для фильтрации инструменты в Umi присутствуют. Однако
верстка и программирование ползунков для выбора диапазона периодически доставляет немало хлопот.

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

Учим MS SQL Server Reporting Services 2008 R2 показывать HTML в отчетах

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


Проблема


Недавно столкнулся с необходимостью показать в отчете SSRS 2008 R2 HTML-таблицы, хранящиеся в базе данных.
И здесь на сцену статисты выносят заботливо подготовленные «грабли». Все дело в том, что Report Manager в SSRS 2008 R2 поддерживает только ограниченное количество тегов HTML, и табличные в их число не входят.
Согласно...

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