JavaScript

JavaScript. Юнит-тестирование и CodeCoverage

Posted by Olegas on Октябрь 06, 2010
IT / 2 Comments

В этой заметке расскажу о своем опыте юнит-тестирования JS-кода, опыте использования среды выполнения тестов js-test-driver, ее возможности code coverage и скручивании ежа с ужом, а именно данных о code coverage от js-test-driver и генератора отчетов о покрытии PHP_CodeCоverage. Сам результат скручивания можно будет поглядеть и потрогать руками…
Continue reading…

Tags: , ,

Еще немного о Яндекс.Пробках…

Posted by Olegas on Март 12, 2010
IT / 1 Comment

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

У Яндекс.Пробок наряду с http://trf.maps.yandex.net/trf/stat.js есть еще http://trf.maps.yandex.net/trf/coverage.js. Этот скрипт рассказывает нам, какие регионы покрыты данными о пробках (ну или хотя бы такая информация поддерживается).

Вот что отдает данный скрипт…

Continue reading…

Tags: ,

Нанесения слоя с пробками на Я.Карту

Posted by Olegas on Март 07, 2010
IT / 4 Comments

API Яндекс.Карт не позволяет «автоматически» нанести на карту слой с пробками. По крайней мере пока. Но проблема решается довольно просто средствами API.

API имеет методы для размещения на карте собственного слоя. Слой карты характеризуется источником тайлов (YMaps.TileDataSource). Для создания источника требуется указать шаблон URL с тайлами.

Источник тайлов

Первая проблема – узнать адрес источника, используемого Я.картами. Решается просто – смотрим с помощью FireBug на карту с пробками и видим в самом верху img с src=http://jgo.maps.yandex.net/tiles?l=trf&x=2500&y=1244&z=12&tm=1267986241. Здесь x,y и z – координаты тайла и информация о зуме карты. tm – временная отмека, за которую отдаются данные о пробках. Без указания параметра tm сервер тайлов отдает 404…

Continue reading…

Tags: ,

Плагин для кэширования селекторов в jQuery

Posted by Olegas on Июнь 29, 2009
IT / No Comments

Простой плагин для jQuery, позволяющий закэшировать работу селекторов.
По наводке tenshi в камментах к http://olegas.habrahabr.ru/blog/63119/

(function($) {
  var selectorCache = [];
  $.cache = {
    get : function(selector) {
      return selectorCache[selector] || (selectorCache[selector] = $(selector));
    },
    clear: function(selector) {
      selector == null ? selectorCache = [] : selectorCache[selector] = null;
    }
  }
})(jQuery);

Использовать примерно так:

// Before
$('#some .css .selector').some().action();

// After
$.cache.get('#some .css .selector').some().action();

Tags: ,

C#-like cобытия для PHP. Reflection, closures…

Posted by Olegas on Июнь 27, 2009
IT / 1 Comment

Задача – сделать на PHP эвенты а-ля C# т.е. произвольный объект может генерировать события. Другие объекты могут на эти события подписываться непосредственно у экземпляра генерирующего объекта.
Continue reading…

Tags: , ,

Оптимизация с помощью замыканий.

Posted by Olegas on Июнь 26, 2009
IT / No Comments

Дано – раз в секунду дергается AJAX’ом скрипт, в нем несколько вызовов одной функции (назовем ее updater) с разными аргументами. Функция в соответствии с аргументами апдейтит некоторый набор DOM-элементов (меняет контент, скрывает, показывает) на текущей странице. Используется jQuery, визэффекты и т.п. Т.е. на клиента приходит примерно такой код…

updater('id1', 10, 20);
updater('id33', 11, 22);
updater('id181', 102, 27);

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

Требуется по-возможности быстро и безболезненно, не меняя верстку и не отказываясь от jQuery оптимизировать процесс.
Continue reading…

Tags: , ,