Что нового в jQuery 1.5?

Совсем недавно, как и было обещано, группа разработчиков библиотеки jQuery выпустила новую версию своего продукта. Не мне вам говорить насколько этот JavaScript фрэймворк популярен во всём мире.

Я попытаюсь вам рассказать о фитчах, которые вошли в свежий релиз.

С выпуском новой версии библиотеки, разработчики jQuery так же обновили jQuery 1.5 API Documentation, которая довольно таки полезная штука для разработчиков.

Самая громкая новость в новой версии это jQuery.sub() который позволяет переопределять нативные методы jQuery, не затрагивая методы, которые используются другими пользователями или даже создавать API интерфейсы для собственных плагинов, что позволяет избежать коллизию пространств имён. Так же присутствуют и нововведения, такие как полное преобразование модуля Ajax запроса, Отложенные (Deferred) объекты и многое другое.

Новый jQuery AJAX

Как было сказано выше, команда jQuery полностью переписала структуру модуля AJAX. Это позволило залатать множество “дыр”, которые присутствовали в предыдущих версиях, что позволило обеспечить высокий уровень согласованности API.

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

Объект jQuery XMLHttpRequest (jXHR) возвращаемый методом $.ajax(), в jQuery 1.5, является расширением браузерного XMLHttpRequest объекта. К примеру, он содержит свойства responseText, responseXML и метод getResponseHeader(). Когда транспортный механизм отличается от XMLHttpRequest (например это JSONP запрос) jXHR объект симулирует нативную XHR функциональность везде, где это возможно.

Вообще говоря разработано несколько новых функциональностей для отправки, получения и обработки AJAX запроса:

Prefilters (Недофильтры :) )

Prefilter это специальная функция, которая вызывается до того, как каждый запрос будет отправлен, и применяется для всех $.ajax().

Converters ( Преобразователи )

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

Transports

Transport это объект, который предоставляет два метода, send (отправить) и abort (отменить), которые используются внутри $.ajax(). Transport это очень навороченная вещь, расширяющая возможности $.ajax() и должна использоваться только в крайнем случае, когда использование converter-ов и prefilters-ов недостаточно.

Полностью обновлённая документация по AJAX находится тут.

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

Этот API позволяет вам работать с возвращёнными данными, даже если их ещё не существует (к примеру таких как данных, возвращенные из асинхронного Ajax запроса). В добавок появилась возможность присоединять несколько обработчиков событий (то, что ранее было невозможно в Ajax API).

Пример:

function doSomethingFancy(){
   return $.get('somescript.php');
}

function doSomethingMagical(){
   return $.get('magical.php');
}

$.when( doSomethingFancy(), doSomethingMagical() )
   .then(function(){
      // сделать что-то, когда оба запроса прошли удачно
   })
   .fail(function(){
      // сделать что-то когда один или оба запроса прошли с ошибкой
});

Теперь это возможно потому что jQuery AJAX возвращает объект для отслеживание асинхронных запросов.

Вы можете узнать больше тут: Deferred Objects documentation.

jQuery.sub()

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

Пример с сайта jQuery:

(function() {
  var myjQuery = jQuery.sub();

  myjQuery.fn.remove = function() {
    // Новая функциональность: Триггер на событие remove
    this.trigger("remove");

    // Вызываем оригинальный метод remove.
    return jQuery.fn.remove.apply( this, arguments );
  };

  myjQuery(function($) {
    $(".menu").click(function() {
      $(this).find(".submenu").remove();
    });

    // Теперь можно использовать новое событие remove
    $(document).bind("remove", function(e) {
      $(e.target).parent().hide();
    });
  });
})();

Возможности jQuery.sub() ограничены только вашим воображением. Вы можете расширять этот фрэймворк как вам вздумается без внесения изменений в ядро.

Это действительно существенные нововведения. Я надеюсь, что разработчики будут использовать их для создания ещё более функциональных приложений.

Вот и всё. Что вы думаете о новых возможностях jQuery? Ждём ваших комментов.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.codeforest.net/jquery-1-5-released-whats-new
Перевел: Станислав Протасевич
Урок создан: 4 Февраля 2011
Просмотров: 14857
Правила перепечатки


5 последних уроков рубрики "jQuery"

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 4 Февраля 2011 11:31
    Лев Нужный
    Интересно +
  • 4 Февраля 2011 11:48
    WH
    Весьма познавательно ++ Ждём уроков с применением всех новых вкусностей. На примере понять всё значительно легче ;)
  • 4 Февраля 2011 11:51
    p0staltomsk
    обалденно!
  • 4 Февраля 2011 13:11
    maxim17
    ждем уроком по jQuery.sub() и новому Ajax
  • 4 Февраля 2011 15:50
    Revy
    такими темпами скоро на jquery цмс писать начнем xDDD
    • 4 Февраля 2011 16:01
      truehazard
      это точно)))
      • 4 Февраля 2011 16:30
        notbot
        Да...
    • 5 Февраля 2011 01:03
      art_reklama_com
      такими темпами скоро на jquery цмс писать начнем xDDD Есть уже)
      • 8 Февраля 2011 20:48
        Revy
        ссыль в студию!!!
  • 4 Февраля 2011 16:30
    notbot
    Круто! :)
  • 4 Февраля 2011 17:39
    Руслан Димитриев
    Зачет!
  • 5 Февраля 2011 11:37
    skript11
    да прикольно!!!
^ Наверх ^