Pull to refresh

jQuery 1.3

Reading time3 min
Views1.5K
Приятная новость для всех поклонников данного фреймворка. В день рождения библиотеки (которой сегодня исполняется уже три года) команда разработчиков объявила о выходе новой версии — 1.3!

Скачать новую версию фреймворка можно по следующим ссылкам:

Что нового?


Sizzle: новая технология работы селекторов


Прежде всего хочется сказать о новой технологии работы селекторов, которую назвали Sizzle. Среди ее особенностей выделяют быстродействие, которая заявляется на 49% лучше, чем в предыдущей версии фреймворка. В дополнение приводится сравнение с работой селекторов в других библиотеках:

Работа селекторов
При этом сама технология была наделена полной самостоятельностью и автономностью, потому может использоваться в дальнейшем авторами других популярных фреймворков.

«Живые» события: live events


В новой версии появились так называемые «живые события» — события, которые могут быть определены для всех текущих и последующих элементов:

$("p").live("click", function(){
      $(this).after("<p>Another paragraph!</p>");
});

Смотрим живой пример.

Объект событий


Серьезно была переработана технология обработки событий, которые вошли в новый объект jQuery.Event, нормально функционирующий во всех браузерах. Подробная информация о внесенных изменениях появится чуть позже.

Инъекция кода в HTML


Весь код, отвечающий за инъекцию кода в HTML и работу с DOM (такие как .append(), .prepend(), .before() и т.п.) также был переписан. В результате опять же было увеличено быстродействие данных операций по сравнению с другими библиотеками:

Быстродействие инъекции элементов

Метод Offset


Метод .offset(), вычисляющий положение объектов, теперь тоже обновлен и работает быстрее:

Быстродействие Offset

Определение браузера пользователя


В новой версии используется уникальная технология определения браузера пользователя: вместо использования привычной идентификации через userAgent, jQuery моделирует специфические особенности каждого браузера или пытается вызвать типичную ошибку. Все это собрано в специальный объект jQuery.Support. При этом объект jQuery.browser по прежнему присутствует в библиотеке.

Критические изменения


Разработчики просят обратить внимание на ряд изменений, которые могут вызвать ошибки при установке новой версии фреймворка на страницу с кодом под предыдущую версию:
  • Символ '@' в селекторе стилей [@attr] был удален. Осуждаемый еще с версии 1.2, такой синтаксис больше не работает. Просто уберите @ в своем коде для работы с новой версией.
  • События в триггерах теперь поднимаются по DOM. Ваши старые обработчики теперь могут случайно фиксировать больше событий, чем нужно.
  • Метод .ready() больше не ждет, пока будут подгружены все CSS. Для корректной работы необходимо убедиться, что все стили подключены до работы сценариев.
  • .isFunction() стал проще, диапазон поддерживаемых функций уменьшился (исключены функции, предоставляемые браузерами, такие как alert(), а также методы DOM, например getAttribute)
  • Порядок селекторов стилей вида «a, b, c» может меняться. Браузеры, которые поддерживают querySelectorAll (Safari, Firefox 3.1+, Opera 10+, IE 8+) вернут элементы в том порядке, в котором они расположены в документе, в остальных же порядок может быть отличным. В версии 1.3.х все будет исправленно.
  • Триггеры и их обработчики больше не принимают объекты событий в виде массива, теперь их нужно определять напрямую как аргументы.
  • Незадокументированная экстра-функция больше не используется в триггерах и их обработчиках.
  • jQuery.event.trigger больше не возвращает последним элемент, возвращенный обработчиком. Необходимо воспользоваться объектом jQuery.Event чтобы получить нужное возвращаемое значение (event.result).
  • Необходимо удостовериться, что страница работает в нормальном режиме. Отмечены случаи, когда некоторые методы некорректно работали при включенном режиме совместимости (в их числе ошибки в работе селекторов в Сафари).


Полный список изменений выложен на официальном сайте плагина.

В ближайшую неделю-две выйдет версия 1.3.1 с фиксами всех найденных багов.

Do more, write less! ;)

UPD: Дописал список критических изменений.
Tags:
Hubs:
Total votes 90: ↑82 and ↓8+74
Comments46

Articles