Обновить
256K+

JavaScript *

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

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

Практический опыт создания Dojo виджетов. Оптимизация производительности Javascript кода

Время на прочтение6 мин
Охват и читатели3.3K
Доброго времени суток, хабрасообщество.

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

image

image

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

dynaTrace AJAX — мощный профайлер JS

Время на прочтение3 мин
Охват и читатели7.2K
Недавно в обсуждении статьи шкала браузерности разговор зашел о том, что IE не так уж убог и его должен иметь на своем компьютере каждый уважающий себя веб-разработчик не только для того, чтобы смотреть не съехала ли там верстка, но и потому что для IE созданы, я считаю, лучшие на данные момент средства для дебага и профилирования JS.
Одно из таких средств — это dynaTrace Ajax, скачать который можно здесь.
Далее обилие скриншотов и небольшой рассказ о возможностях dynaTrace

Оптимизация JSON датасетов (массивов записей)

Время на прочтение11 мин
Охват и читатели9.5K
Под датасетом будем понимать массив записей JavaScript:

var dataset = [
  { foo: 'xxx', bar: xxx' },
  { foo: 'yyy', bar: 'yyy' },
  ...
  { foo: 'zzz', bar: 'zzz' }
];


Это обычное JavaScript представление некоторой части таблицы (или выборки) из реляционной базы данных: имена свойств соответствуют именам столбцов, значения свойств — значениям полей записи.

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

Google Code Playground — инструмент для совместного тестирования примеров на Javascript

Время на прочтение5 мин
Охват и читатели5.1K
Если знание начинают использовать
не по назначению —
это общественно полезное знание.


Прошёл год после открывания публике инструмента Google Code Playground. Времени прошло много, используется он мало. На самом же деле, у него есть всё, чтобы эффективно использоваться не по назначению.

Инструмент предназначен для демонстрации и онлайновой отладки примеров Гугл-кода (JS+HTML+CSS) в браузере. Старательно выложены сотни примеров и написана документация к ним. Сейчас нам всё это будет не нужно, кроме использования самого движка, позволяющего редактировать, тестировать и сохранять не чьи-нибудь, а свои примеры кода.
Читать дальше о достоинствах и недостатках сервиса

Асинхронное программирование: Примитивы высокого уровня

Время на прочтение2 мин
Охват и читатели3.2K
После появления асинхронного каркаса Twisted концепция отложенного результата (continuable) стала очень популярной.

Прежде всего рекомендую прочитать статьи: Асинхронное программирование: концепция Deferred, Deffered для JavaScript.

Но пользоваться отложенными результатами не очень удобно без абстракций более высокого уровня. И теперь у нас есть каркас Do.
Читать дальше →

Маленький тест на знание JS

Время на прочтение2 мин
Охват и читатели33K
Пост про (вполне логичные) особенности javascript ( habrahabr.ru/blogs/javascript/84311 ) вызвал бурное обсуждение. Я вслед за автором WTFJS.com сильно облажался, считая эти странности действительно чем-то мистическим ) Большое спасибо всем тем, кто объяснил, почему так происходит на самом деле или для чего так сделано. Понимание таких тонкостей позволяет перейти в общении с языком на «ты». Кто-то скажет, что это должен знать любой программист, хоть как-то владеющий JS? Возможно. Но, как оказалось, многие не знали, и я в их числе.

Простите, но кат здесь стоит только потому, что пост чуть больше, чем нужно

Ох уж этот javascript

Время на прочтение1 мин
Охват и читатели17K
Считаете себя гуру JS'а? Попробуйте предсказать результаты следующих операций:

Number.MIN_VALUE > 0; // true or false?

typeof null; // what type?
null === Object; // true or false?

// и самый сок

NaN === NaN; // true or false?

typeof NaN; // what type?


* This source code was highlighted with Source Code Highlighter.


Сомневаетесь? Тогда именно для вас Брайан Леру (Brian Leroux) создал WTFJS — сайт, содержащий коллекцию странностей JS. «JavaScript — это язык, который мы любим несмотря на все его ненавистные особенности».

Для нетерпеливых ответы под катом.

Подглядеть

nodeJS и nonblocking I/O

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

Добрый вечер уважаемые читатели,


На хабре последнее время проскакивало несколько упоминаний о node, быстрой платформе для создания вэб приложений на javascript, обладающей довольно уникальной на сегодняшний день особенностью, неблокирующим I/O (вводом/выводом).

Для начала о nodeJS:


1) В качестве языка используется JavaScript
2) Для выполнения JavaScript используется движок V8 от Google, который работает довольно быстро благодаря компиляции в машинный код перед выполнением.
3) Для реализации неблокирующего I/O используются libev и libeio, (libev показывает более хорошие результаты по сравнению с libevent)
4) Для реализации подключения библиотек выбран синтаксис commonJS
5) Есть возможность писать модули ещё и на C/C++, при этом подключаются они точно так-же как и js модули, это позволит Вам, к примеру, любое узкое место в вашем приложении переписать на C++ без каких либо трудностей.

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

iLoad 3 — javascript галерея изображений

Время на прочтение1 мин
Охват и читатели13K
Я разработал хорошую на мой взгляд галерею изображений под названием iLoad. Сегодня опубликовал уже 3 версию. Галерея может достаточно много всего, хотя и работает только с изображениями. Подробнее можно прочитать в большущем посте вот тут или посмотреть на работу галереи на странице скачивания. Надеюсь, вы оцените.

UPD

Подготовил версию 3.2.5. Теперь галерея стабильно работает в IE9. Пофиксены все найденные баги.

Конструктор/редактор Яндекс.Карт

Время на прочтение1 мин
Охват и читатели14K
Внезапно потребовалось выводить на странице виджет Яндекс.Карт с какими-то накладываемыми слоями. Проблема заключалась в необходимости дать пользователю редактировать эти слои.

Быстрый поиск редакторов накладываемых примитивов дал только конструктор схем проезда от Яндекса и какой-то убогий php'шный конструктор карт (к тому же ещё и платный). А редактор был нужен. По этому пришлось сесть и быстренько написать.


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

QUnit. Тестирование javascript кода

Время на прочтение5 мин
Охват и читатели65K
Наткнулся вчера на этот инструмент и не смог пройти мимо, провел ночь за написанием тестов, а теперь хочу поделиться находкой. QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты для кода на javascript. Удобна в использовании, ничего лишнего, осваивается за 20 минут, выгода от применения — колоссальная.

Самым нетерпеливым сразу ссылки:
Официальная документация на сайте jquery: docs.jquery.com/QUnit
Реальные примеры тестов (для модулей jquery): view.jquery.com/trunk/jquery/test/unit
Руководство для начинающих (англ): www.swift-lizard.com/2009/11/24/test-driven-development-with-jquery-qunit
Система распределенного тестирования (гениально и просто): testswarm.com

Под катом информация о преимуществах юнит-тестирования применительно к js и разбор возможностей библиотеки на примерах.
Читать дальше →

String.Format

Время на прочтение3 мин
Охват и читатели71K
Те, кто пишут на C# очень хорошо знают и часто используют механизм String.Format, которого сильно не хватает в JavaScript. Несмотря на его простоту и удобство, на просторах Сети мало что можно накопать, в основном вариации на тему sprintf (привет сишникам). Достаточно давно был написан скрипт, который позволял форматировать строки на JavaScript и был похож на String.Format C#. Форматирование стало использоваться коллегами достаточно плотно в скриптах и я решил немного причесать код и опубликовать для тех, кто хочет получить String.Format в JavaScript.
Читать дальше →

Javascript Templater ноль.два

Время на прочтение10 мин
Охват и читатели1.2K
Нашел в закромах свой старый JavaScript шаблонизатор, почитал отзывы в прошлой статье и решил кое-то переделать, изменений не так много, но они вполне существенны, добавил поддержку функций и методов в шаблонах…
кому интересно, идем дальше

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

Bacon And Eggs. Велосипед с яйцами и линейной алгеброй!

Время на прочтение1 мин
Охват и читатели2.5K
Недавно у меня появился ряд задач, связанных с процедурной графикой в вебе, анимацией и механикой.
Став искать простые пути там, где их обычно нет, я наткнулся на чудненькую библиотеку «Bacon And Eggs» от Эндрю Хойера.
Красную или синюю?

Мастер-классы по javascript в Москве и Санкт-Петербурге

Время на прочтение1 мин
Охват и читатели614
В феврале пройдут мастер-классы по javascript в Москве и Санкт-Петербурге.
Даты — 20 и 21 февраля для Москвы, 27 и 28 февраля для Санкт-Петербурга.
  • Профессиональное javascript-программирование.
  • Сложный AJAX и COMET: тонкости Web 2.0.
  • Мастер-класс по клиентской оптимизации.
  • Секреты jQuery.
На мастер-классы приходят как начинающие, но желающие вырасти побыстрее, так и ведущие специалисты серьезных компаний.
Все говорят спасибо. Это не шутка, материала много и он интересный.

Мероприятие платное, но цена очень доступная. Приходите, узнаете много нового.

Регистрация открыта на javascript.ru/mk, там же больше информации о мастер-классах.

Викторина для тех, кто любит Javascript больше ECMAscript

Время на прочтение2 мин
Охват и читатели3.6K
Викторина для тех, кто любит JavaScript больше ECMAScript. Главный приз: пирожок на полке.

Update: Пояснение. Для тех кто совсем не в теме. ECMAScript — это стандарт языка, на котором основаны реализации JavaScript в современных браузерах. Именно этот стандарт определяет поведение программ в этой статье. JavaScript является «надстройкой» над ECMAScript.

Пояснение номер 2. Глюки IE не имеют прямого отношения к викторине поскольку это ошибки (ну или «особенности») реализации стандартов.

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

Визуализация данных в вебе: диаграммы Ганта

Время на прочтение1 мин
Охват и читатели23K
В связи с недавней серией постов на тему визуализации данных в вебе меня попросили посоветовать библиотеки для рисования диаграмм Ганта, что с удовольствием и делаю.

Диаграмма Ганта (англ. Gantt chart, также ленточная диаграмма, график Ганта) — это популярный тип столбчатых диаграмм, который используется для иллюстрации плана, графика работ по какому-либо проекту. Является одним из методов планирования проектов.

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

Побит рекорд самого короткого кода по определению IE

Время на прочтение1 мин
Охват и читатели3.4K
Без малого год назад, я уже писал (http://habrahabr.ru/blogs/javascript/50544/) о самом коротком способе определение браузера Internet Explorer, но вот некто Aleko нашел еще более короткий вариант:

-[1,]

Всего 5 байт. Пример использования:
if(-[1,]){
alert("Not IE!");
}

Джаваскриптовый эмулятор Сommodore 64

Время на прочтение1 мин
Охват и читатели1.3K
Опрос показал, что около 42% читателей Хабрахабра используют рождественские выходные дни для того, чтобы потрудиться над своими проектами.

Во блоге Ajaxian сообщают, что точно таким же манером использовал свои выходные разработчик по имени Тим де Конинг, который портировал Flash-версию эмулятора Commodore 64 на чистый джаваскрипт, работающий с холстом (<canvas>). Получился проект, названный им jsc64. Выглядит вот как:

[скриншот jsc64]

Исходный код раздаётся на GitHub. Там есть даже plugin для jQuery.

Список Javascript библиотек для рисования графиков и диаграмм 2

Время на прочтение2 мин
Охват и читатели37K
Продолжаем тему визуализации данных в интернете.

Предыдущие топики:
Читать дальше →