fastcoder

 

+++

Лично не проверял, но судя по описаниям может быть полезно: microjs.com - огромный список небольших библиотек под конкретные задачи.
01.06.2011, 12:57 links js lib

Итератор - прохождение больших массивов в JavaScript

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

До того как вы вчитаетесь в код поясню вкратце чем занимается итератор:

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

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

04.05.2011, 13:45 js my

Изменение метода интерполяции изображения в CSS

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

Internet Explorer

IE версии 6 и ниже использует метод ближайшего соседа (Nearest Neighbor interpolation) при масштабировании. IE7+ также поддерживает бикубическую интерполяцию (Bicubic interpolation). И начиная с 7 версии с помощью свойства -ms-interpolation-mode можно переключаться между этими двумя методами.

По умолчанию в ИЕ7 при масштабе страницы 100% включена интерполяция методом ближайшего соседа, при изменении масштаба дефолтной становится бикубическая интерполяция. В ИЕ8-9 по умолчанию всегда включена бикубическая интерполяция независимо от масштаба страницы.

img.highqual { -ms-interpolation-mode:bicubic }
img.nearestn { -ms-interpolation-mode:nearest-neighbor }

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

19.04.2011, 12:08 css guru

Кэширование длины массива

Есть мнение, что кэширование длины массива увеличивает производительность. Якобы обращение к свойству объекта занимает больше времени, чем обращение к примитиву и на больших циклах лучше кэшировать свойство length. Проверим с помощью jsfiddle.net ряд утверждений:
- имеет ли место сам факт снижения производительности без кэширования,
- в каких браузерах проблема актуальнее,
- начиная с какой длины массива имеет смысл вспомнить о кэшировании.

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

18.04.2011, 17:08 js optimization

Оператор ~

Подсмотрено здесь. В JavaScript есть оператор тильда (побитовое НЕ), выполняющий для целых чисел фактически -( n + 1 ). Примеры:

~0 // -1
~1 // -2
~-1 // 0

Так как -1 тильда превращает в ноль, довольно удобно использовать этот опереатор совместно с indexOf() для определения факта вхождения подстроки:

var s = "string";
!!~s.indexOf('s') // true
!!~s.indexOf('t') // true
!!~s.indexOf('h') // false

UPD. Дробную часть числа тильда отбрасывает:

~123.456 // -124

Комбинация двух тильд можно использовать вместо parseInt():

~~123.456 // 123
12.04.2011, 16:42 js guru

Оператор запятая

Все сведения были подсмотрены в одноименной статье на Хабре. Сделаю выжимку самого ценного и интересного. Примеры и текст мной модифицированы для улучшения понимания.

Вводная

var a = (10, 7, 5); // 5
// оператор запятая выполняет все операнды (слева направо)
// и возвращает значение последнего оператора.

Оператор запятая имеет наименьший приоритет из всех операторов:

(function() {
	return 5 * 2 + 3,  22; // 22
})();

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

12.04.2011, 13:35 js guru

+++

Прекрасные анимации на canvas и не только: http://hakim.se/

08.04.2011, 11:28 links js canvas animation

+++: сервисы

Распаковка пожатых джаваскриптов: http://jsbeautifier.org/.
Первый, второй, третий обфускаторы для JavaScript и статья о них на Хабре.
Куда же мы без http://closure-compiler.appspot.com/home.

07.04.2011, 18:57 links services obfuscate js

Эволюция

Раз

jQuery(function($) {
	var	_link = $("#component_init_link"),
		_block = $("#component"),
		_close = $(".close", _block);
	_link.click(function() {
		_block.show();
		return false;
	});
	_close.click(function() {
		_block.hide();
		return false;
	});
});

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

01.04.2011, 13:35 js optimization

+++

К изучению:
Modernizr
HTML5 ★ BOILERPLATE
jQuery Waypoints

29.03.2011, 16:26 todo links