Как стать автором
Обновить

Состоялся релиз jQuery 1.5

Время на прочтение5 мин
Количество просмотров1.8K
jQuery 1.5 готов для использования!

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

Загрузка


Как правило, предлагается два варианта использования jQuery — минимизированная и распакованная (для отладки и изучения).


Вы можете свободно использовать эти URLы прямо в вашем проекте, тем самым получая все преимущества производительности в связи с быстрой загрузкой jQuery.

Также вы можете загрузить jQuery из Microsoft и Google’s CDNs:

О релизе


В этом выпуске было исправлено 83 ошибок и 460 закрытых тикетов в общем количестве.

Набор тестов (включающий в себя теперь 4437 тестов) выполняется успешно во всех браузерах, на которых работает jQuery. Команда разработчиков уверяет, что тесты успешны в следующих браузерах:
  • Safari 5.0.3 / 4.0.5 / 3.2.3 / 3.1.2
  • Opera 11.01 / 11 / 10.63 / 10.54 / 10.10 / 9.64
  • IE 6 / 7 / 8
  • Firefox 4.0b9 / 3.6.13 / 3.5.11 / 3.0.19 / 2.0.0.20
  • Chrome 8.0.552.215 / 8.0.552.237 / 9.0.597.67 Beta / 10.0.642.2 Dev


Ссылка на новость на офсайте: http://blog.jquery.com/2011/01/31/jquery-15-released/

API-документация традиционно может быть найдена на сайте: jQuery 1.5 API Documentation.

Полное расписание предстоящих выпусков можно найти по ссылке. Сейчас команда планирует делать выпуски мажорных версий jQuery чаще, чем раньше (скажем так, несколько раз в году против ранешнего плана — 1 в год).

Итак, без лишних слов, что же нового в jQuery 1.5?


Полная переработка Ajax

Наибольшее изменение в этом выпуске — это переработка модуля Ajax. Это позволяет исправлять множество дыр, которые имели место в старой версии данного модуля наряду с обеспечением высокого уровня согласованности из API-интерфейсом.

Возможно, наибольшее изменение касается вызова jQuery.ajax (или же jQuery.get, jQuery.post, и т. д.). Теперь результат выполнения этого метода возвращает jXHR-объект, обеспечивающий согласованность с объектом XMLHttpRequest между различными платформами (что позволяет теперь выполнять ранее невозможные задачи в связи с прерыванием запросов JSONP).

Больше информации касательно нового jXHR-объекта можно найти в документации по jQuery.ajax().

В качестве дополнения к более согласованному API, система Ajax также теперь более поддается расширению, тем позволяя присоединять разного рода обработки, фильтры и транспорты. Данные изменения должны дать основу для нового поколения плагинов к Ajax, взаимодействуя с новой реализацией. Больше информации можно найти в документации по расширению Ajax.
Команда активно работает над расширяемостью Ajax API и если вам есть, что сказать — пожалуйста, не стесняйтесь обратиться на форум разработчиков jQuery

Отложенные (deffered) объекты

Наряду с переделанным модулем Ajax также стала доступной новая возможность, так называемая, «Отложенные объекты» (сделана, кстати, на основании Promisess/A, — прим. перев.). Этот API позволяет работать с результирующим набором данных, которого фактически пока не существует (например, полученный результат выполнения асинхронного Ajax-запроса). Это дополнительно предоставляет возможность присоединять несколько обработчиков событий (что ранее не было возможным в предыдущем Ajax API).

Например, следующие операции теперь возможны с новым jQuery Ajax API:

  1. // Присоединить обработчики непосредственно после запроса,
  2. // и запомним jxhr-объект этого запроса
  3. var jxhr = $.ajax({ url: "example.php" })
  4.     .success(function() { alert("успешно"); })
  5.     .error(function() { alert("ошибка"); })
  6.     .complete(function() { alert("выполнено"); });
  7.  
  8. // выполним какую-то работу здесь ...
  9.  
  10. // Определим другую функцию для обработки события complete
  11. jxhr.complete(function(){ alert("выполнено опять"); });


Также вы можете создавать собственные «отложенные объекты» используя jQuery.Deferred. Больше информации вы найдете в документации по Deferred-объектам.

jQuery.sub()

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

Для наглядной демонстрации — пример создания плагина, инкапсулировашего методы, которые не конфликтуют с любым другим плагином:

  1. (function() {
  2.  // Делаем копию jQuery, используя sub()
  3.  var plugin = jQuery.sub();
  4.  
  5.  // Расширим возможности полученной копии с новыми методами плагина
  6.  plugin.fn.extend({
  7.     open: function() {
  8.      return this.show();
  9.     },
  10.     close: function() {
  11.      return this.hide();
  12.     }
  13.  });
  14.  
  15.  // Добавим наш плагин к оригинальной копии jQuery
  16.  jQuery.fn.myplugin = function() {
  17.     this.addClass("plugin");
  18.  
  19.     // Убеждаемся, что наш плагин возвращает нашу "скопированную" версию jQuery
  20.     return plugin( this );
  21.  };
  22. })();
  23.  
  24. $(document).ready(function() {
  25.  // Вызываем плагин, метод open уже существует
  26.  $('#main').myplugin().open();
  27.  
  28.  // Внимание: вызов $("#main").open() не будет работать, поскольку метод open() не существует!
  29. });
* This source code was highlighted with Source Code Highlighter.


Больше информации о jQuery.sub() можно также найти в документации по API.

Производительность смежного перебора элементов

В этом выпуске также было улучшено несколько часто используемых методов: .children(), .prev(), and .next(). Разница в скоростях обработки, которые мы уже можем наблюдать, весьма существенна (возможно, намного быстрее, в зависимости также от браузера).







Тест на производительность или голые цифры

Система сборки


Ну, и, наконец, были сделаны о внутренней системе сборки jQuery. Команда работала в части стандартизации всего процесса сборки касательно отличной JavaScript-среды NodeJS. С их слов, особенно команда довольна уменьшением зависимости от систем Java/Rhino, фокусируя взгляд на среды будущего JavaScript (неуж-то следует ждать server-side реализации jQuery? — прим. перев.).

Вместе с этим также был выполнен переход из Google Closure Compiler на UglifyJS. Также были замечены изменения в лучшую сторону относительно размера файла, в связи с чем разработчики еще более удовлетворены данным переходом.

Ну, и, конечно, команда jQuery и дальше активно всех приглашает содействовать в поддержке в jQuery-ядра.

Пиши меньше, делай больше!

(обновлено)
Теги:
Хабы:
+138
Комментарии64

Публикации

Истории

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн