jQuery 1.1.4: Faster, More Tests, Ready for 1.2

Posted on by

We’re pleased to announce the latest release of jQuery: jQuery 1.1.4. Barring any horrible mistakes, this release will be the last of the 1.1.x branch – leading us up to the release of jQuery 1.2 in September.

You can download the release from the jQuery Google Code page:

Download:

Improvements

A number of improvements have gone into this release, in addition to all of the normal bug fixes.

Any Name jQuery

jQuery has taken a big step to become the first major JavaScript library completely capable of renaming itself. Previously, functionality was provided to rename the oft-used ‘$’ shortcut for ‘jQuery’ – but now you can also rename both ‘$’ and ‘jQuery’. This allows for two fantastic results:

  • You can now include multiple versions of jQuery, simultaneously, on the same page.
  • You can now embed jQuery into the namespaces of other objects and libraries, for example:
    // With the Dojo Toolkit
    dojo.jquery = jQuery.noConflict(true);
    dojo.jquery("#elem div").slideDown("slow");
    // or with Yahoo UI
    YAHOO.query = jQuery.noConflict(true);
    YAHOO.query("span.hidden").removeClass("hidden");

Speed Improvements

What would a release be without some speed improvements? We took the opportunity to step beyond any previously-released speed test suites and improve the speed of the three most commonly used portions of jQuery: ID selectors, tag name selectors, and each() loops. It’s absolutely critical that each of these items are made as fast as possible, as they have the possibility of being re-used endlessly, and repeatedly.

Here’s the test suite used to analyze the speed of the three changes.

$(“#id”) Improvements

Browser jQuery 1.1.3 jQuery 1.1.4 % Improvement
IE 6 651ms 70ms 830%
Firefox 2 1355ms 27ms 4919%
Safari 3 101ms 14ms 620%
Opera 9 270ms 62ms 335%
Average improvement: 1676%

$(“elem”) Improvements

Browser jQuery 1.1.3 jQuery 1.1.4 % Improvement
IE 6 661ms 451ms 47%
Firefox 2 1717ms 143ms 1100%
Safari 3 99ms 83ms 19%
Opera 9 226ms 198ms 14%
Average improvement: 295%

.each() Improvements

Browser jQuery 1.1.3 jQuery 1.1.4 % Improvement
IE 6 200ms 30ms 567%
Firefox 2 468ms 29ms 1514%
Safari 3 17ms 11ms 54%
Opera 9 45ms 25ms 80%
Average improvement: 554%

Test Suite Overhaul

This is very big news – and should be especially so to most developers out there. The jQuery test suite has been completely re-tooled and improved from the ground up for stability. A brand new swath of Animation and Ajax tests have been integrated bringing jQuery’s total test count to over 800 tests!

Additionally, the test suite completely passes with no errors in all the major browsers that we support: Firefox 2, Safari 3, Internet Explorer 6, and Opera 9 (Safari 2 and IE 7 not shown for brevity). Proof:

In the future, we’re working to improve our coverage of the Event, Attribute, and CSS portions of jQuery – undoubtedly bringing us to over 1000 tests very soon.

Additionally, it should be noted that the jQuery test suite is now embedded in the Mozilla test suite – running against every commit of the upcoming Firefox 3 release. You can feel safe knowing that in the newest release of Firefox, everything will just keep working, as you would expect it to.

Bug Fixes

53 tickets have been closed for this release. You can read the full details on the the bug tracker (this includes fixes that went in to jQuery 1.1.3.1).

A bunch of large issues were resolved, including issues related to HTML script evaluation, Safari CSS Computed Style access, and Ajax settings manipulation.

New Functionality

A couple pieces of new functionality have been introduced. The first two of which, .slice() and :has(), are going to be a part of jQuery 1.2, but their existence is obligated by some deprecated functionality (see below). The new changes to extend() and noConflict() were put in order to be able to fix some long standing bugs in jQuery.

.slice()

You may recognize this method name from the .slice() method that exists on JavaScript arrays – you’re in luck because it behaves identically. This is a great method for chopping apart jQuery objects and getting to the elements inside of them. All of the following are valid ways to use the slice() method:

$("div").slice(0,1); // First div
$("div").slice(-1); // Last div
$("div").slice(1,-1); // All divs but the first and last
$("div").slice(1,3); // The second and third div
$("div").slice(7,8); // The eighth div

:has()

This new selector is a replacement for the current way of checking for elements inside of another element (div[p]). You can now use this selector just as you would that particular XPath selector, like so:

// All divs with a paragraph inside
$("div:has(p)")
// All anchors with an image inside
$("a:has(img)") 
// All divs that have an anchor inside that have an image inside
$("div:has(a:has(img))")

Deep, recursive .extend()

This has been a frequently-requested addition to the jQuery .extend() method. This change allows you to deeply merge nested objects (as opposed to having them overwrite each other). This is best demonstrated through an example:

// Normal .extend()
jQuery.extend(
  { name: "John", location: { city: "Boston" } },
  { last: "Resig", location: { state: "MA" } }
);
// Result:
// => { name: "John", last: "Resig", location: { state: "MA" } }
// New Deep .extend()
jQuery.extend( true,
  { name: "John", location: { city: "Boston" } },
  { last: "Resig", location: { state: "MA" } }
);
// Result:
// => { name: "John", last: "Resig",
//      location: { city: "Boston", state: "MA" } }

.noConflict(true)

As described previously, this addition to .noConflict() allows you to completely rename both the ‘jQuery’ namespace and the ‘$’ shortcut, while also rolling back any changes those introductions may have done. You can use this new shortcut like so:

// Give jQuery a custom name:
var jq = jQuery.noConflict(true);
jq("#id div").hide();

// Both Fail - $ and jQuery have been renamed:
$("#id div").hide();
jQuery("#id div").hide();

This trick can also be used to push jQuery into an existing namespace, like so:

// Put jQuery in a namespace:
var obj = {};
obj.jq = jQuery.noConflict(true);
obj.jq("#id div").hide();

Deprecated Functionality

We are deprecating a number of methods in jQuery 1.1.4 in preparation for the API changes in the upcoming jQuery 1.2. Wherever possible, we’ve provided alternate methods for performing actions.

With jQuery 1.2, as with the jQuery 1.1 release, a backwards compatibility plugin will be provided. Thus, if you wish to continue using these particular techniques, you’ll be able to use that plugin and continue doing so.

Additionally, in order to handle the XPath changes another, separate, plugin will be released that will handle XPath selector functionality in jQuery. This plugin will be made available along with the jQuery 1.2 release.

Selectors

$("div//p") XPath Descendant Selector
Please use the CSS $("div p") selector instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.

$("div/p") XPath Child Selector
Please use the CSS $("div > p") selector instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.

$("p/../div") XPath Parent Selector
Please use the $("p").parent("div") selector instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.

$("div[p]") XPath Contains Predicate Selector
Please use the new $("div:has(p)") selector instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.

$("a[@href]") XPath Attribute Selector
Note: While this selector is being deprecated in this release, it will not be removed in jQuery 1.2. Come jQuery 1.2, it’ll be recommended that you use the CSS selector $("a[href]") instead. Or, when jQuery 1.2 is released, use the new XPath Plugin.

DOM Manipulation

$("div").clone(false)
Calling the clone method with an argument is being deprecated (the clone method, as a whole, is being kept). Instead of calling .clone(false) you should now do: .clone().empty() instead.

DOM Traversal

$("div").eq(0)
This method is being deprecated for the use of the new .slice() method (which works identically to an array’s slice method. You can duplicate .eq() like so:

$("div").slice(0,1);

Additionally, .eq(0) can be duplicated in the following ways:

$("div:eq(0)")
$("div:first")

$("div").lt(2)
This method is being deprecated for the use of the new .slice() method (which works identically to an array’s slice method. You can duplicate .lt() like so:

$("div").slice(0,2);

Additionally, .lt(2) can be duplicated in the following way:

$("div:lt(2)")

$("div").gt(2)
This method is being deprecated for the use of the new .slice() method (which works identically to an array’s slice method. You can duplicate .gt() like so:

$("div").slice(3);

Additionally, .gt(2) can be duplicated in the following way:

$("div:gt(2)")

Ajax

$("#elem").loadIfModified("some.php")
This convenience method is being removed in favor of the long form use of $.ajax():

$.ajax({
  url: "some.php",
  ifModified: true,
  success: function(html){
    $("#elem").html(html);
  }
});

$.getIfModified("some.php")
This convenience method is being removed in favor of the long form use of $.ajax():

$.ajax({
  url: "some.php",
  ifModified: true
});

$.ajaxTimeout(3000)
This convenience method is being removed in favor of the long form use of the more-explicit $.ajaxSetup():

$.ajaxSetup({timeout: 3000});

$(...).evalScripts()
This method is no longer necessary in jQuery – all scripts included in HTML strings are automatically evaluated when injected into the document. No substitute method is needed.


As always, please let us know if you encounter any bugs in between jQuery 1.1.3.1 and jQuery 1.1.4. Thanks!

185 thoughts on “jQuery 1.1.4: Faster, More Tests, Ready for 1.2

  1. Не знаете чем заняться в свободное время? Заходите на сайт downgams.ru и узнайте подробную информацию о казино, покере, нардах и других играх. Скачайте себе приглянувшуюся игру совершенно бесплатно и наслаждайтесь приятным времяпрепровождением. Наиболее любознательные смогут узнать историю возникновения покера, казино и нард, отыскать логические игры и испытать удачу в азартных играх. Все это и многое другое только у нас.
    Скачать игры

  2. хорошее качество у фото, итересно на какой фотик фоторграфировали?
    А так просто супер=) смотреть

  3. На сегодняшний день, кажется, невозможно прожить и один день, никак не услышав этого коварного и достаточно интригующего слова. О ней говорят, с ней пытаются бороться, ее все бояться. Что же такое инфляция? Почему периодически происходит падение курса и обесценивание национальной валюты? Узнать более о понятии инфляции, ее причинах и издержках, инфляционных налогах, ценах, курсах валют, потоке средств и многом другом возможно на сайте inflations.ru
    Инфляция

  4. За свою жизнь каждому человеку хотя бы раз доводилось сталкиваться с жилищной проблемой. Это может быть как покупка, так и продажа или аренда недвижимого имущества. Операции с недвижимостью представляют собой достаточно трудоемкий процесс, который требует немалого количества знаний. Разобраться во всех сложностях операций с недвижимостью, узнать о жизненный цикл объекта недвижимости Вы всегда сможете на сайте yprav-nedvizh.ru
    Экономическая сущность недвижимости

  5. Кто как думает, повлияет ли кризис на итернет? Я так подазреваю что безусловно, подвижки уже есть.И это очень печально(((

  6. Ты че бредиш? Какой кризис=) Нас это не каснется это там пендосы в своей америке пусть переживают. А интернет он независим от окружающего мира. Только вот будет ли а нас бапки чтоб его оплачивать вот другой вопрос))))

  7. Монетарная политика – основной механизм в денежной системе страны, благодаря которому реализуются ее основные общественные направления. Узнать все о монетизации бюджетного дефицита, экономичности денег, структуре денежного оборота, законе денежного обращения, сбережениях и инвестициях в механизме денежного рынка, с
    оздании и развитии денежной системы Украины и многом другом на нашем сайте.
    Денежный оборот

  8. Современный рынок кровельных материалов развивается огромными темпами, появляется все больше и больше разнообразных технологий и материалов. Металлочерепица становится самой популярной и востребованной кровлей в России. И это неудивительно, ведь она идеально подходит для наших климатических условий. Узнать подробнее о металлочерепице, ее видах, натуральной черепице, медной черепице “Чешуя”, черепице фирм Coversys (Каверсис), Ildizbond, Mera System можно на нашем сайте. Металлочерепица

  9. Непосвященному человеку очень легко запутаться во множестве названий и терминов, сопутствующих правильному подбору металлочерепицы. Что все это значит и как никак не ошибиться. Устройство кровли из металлочерепицы – дело достаточно дорогостоящее и долговременное, и хочется сделать это один раз и навсегда. Узнать подробнее о металлочерепице, ее видах, натуральной черепице, медной черепице “Чешуя”, черепице фирм Coversys (Каверсис), Ildizbond, Mera System можно на нашем сайте.
    Мир металлочерепицы

  10. Современные пласитиковые окна – имеено то, что необходимо для создания уюта и тепла в Вашем доме. Важным моментом является выбор окон, от которого зависит то, насколько окна впишутся в Ваш интерьер. Узнайте больше о Австрийской фирме “Mayer & Co”, закаленном стекле, рынке оконных профилей, продукции KOMMERLING, стеклопакетах, фурнитуре SIEGENIA и многом другом на нашем сайте. 5-ти камерная профильная система STREAMLINE (SALAMANDER)

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

  12. Окна – зеркало души Вашего жилья. Окна ПВХ не только идеально впишутся в Ваш интерьер, но и создадут необходимый климат Вашему дому. Если Ð’Ñ‹ собираетесь купить окна, загляните на наш сайт oknoplas.ru и узнайте о формах окон, цветовых решениях, вариантах открывания окон, деревянных окнах, окнах из алюминия, ПХП, системах вентиляции и многом другом. Сделайте свою жизнь светлее и радужнее вместе с красивыми и стильными окнами.
    Окна ПВХ

  13. Создать в доме уютную атмосферу можно вместе с оконными профилями ПВХ. Уже купили окна? Тогда стоит позаботиться об их правильном и провессиональном монтаже и качестве стекла. Узнайте о монтаже окон, группе компаний KBE, пластиковых окнах REHAU Basic Design, заказе окон, стеклопакетах, фурнитуре WINKHAUS и многом другом на нашем сайте. Уход за окнами

  14. Служба курьерской доставки – это коммерческая организация, которая предлагает свои услуги по доставке грузов, денег, документов или информации. Курьерская доставка обычно может обеспечить более быстрые сроки доставки документов, чем любой другой метод. Узнать абсолютно все про доставку, клиентов службы курьерской доставки, доставку цветов, курьерскую доставку и многое другое Ð’Ñ‹ сможете на нашем сайте.
    Курьерская доставка

  15. Единый казначейский счет – это система бюджетных счетов органов государственного казначейства, которые открыты в органах казначейства, на которые зачисляются налоги и другие обязательные платежи государственного и местных бюджетов. Узнать все про экономическую сущность и назначение единого казначейского счета, этапы возникновения Государственного казначейства, функции казначейства, классификацию расходов бюджета и многое другое Ð’Ñ‹ всегда сможете на нашем сайте.
    Предпосылки создания казначейской системы

  16. Для инвестиционной политики большое практическое значение имеет классификация капиталовложений с точки зрения оценивания на основе их рентабельности и дифференциация норм прибыли для разных групп. Это педоставляет возможность руководству предприятия не только планировать доходность того или иного варианта, но и систематически оказывать влияние на инвестиционные решения и направлять инвестиционную политику предприятия в желательном направлении. Все это можно узнать на нашем сайте.
    Инструменты займа

  17. Каждый бизнес начинается с денег, беспрестанно требует денег и создается ради накопления денег. Решение финансовых вопросов – одна из наиболее важных проблем предпринимательства. Деятельность, связанная с деньгами, требует специфических знаний и умений. Ð’ частности, вопросами рационального управления капиталом занимается дисциплина Финансовый менеджмент.
    Теория Доу

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

  19. Инвестиционная деятельность в той или иной степени присуща всякому
    предприятию. При немалом выборе типов инвестиций организация регулярно сталкивается с проблемой выбора инвестиционного решения. Вероятность достижения цели зависит от правильности оценивания риска, полноты и точности его расчета. Так как же не ошибиться в правильности выбора инвестиционного решения? Об этом и многом другом вы узнаете на нашем сайте.
    Оперативный лизинг

  20. Ð’ ХХ веке к нам из Страны восходящего солнца пришла чудесная игра – Маджонг. Игра Маджонг относится к азартному виду игры в фишки. Ð’ игровой комплект фишек для игры Маджонг входит 136 штук. Постепенно игра Маджонг модернизировалась и в набор фишек добавились еще два вида. Хотите найти все про маджонг, правила, питерский маджонг, фэн-шуй маджонг? Все это и многое другое Ð’Ñ‹ сможете узнать посетив наш сайт.
    Питерский маджонг

  21. Инвестиционная стратегия является долгосрочным обобщенным планом управления капиталом. Она избирается на основании состояния и прогнозов относительно макроэкономической среды, инвестиционного рынка, инвестора, сферы его бизнеса и деловых интересов. Степень достижения цели зависит от правильности оценивания риска, полноты и точности его расчета. Так как же не ошибиться в правильности выбора инвестиционного решения? Об этом и многом другом вы узнаете на нашем сайте. Заемные финансовые ресурсы

  22. Финансовая система страны – это набор разных сфер (звеньев) финансовых отношений, любая из которых характеризуется спецификой прогресса и применении фондов денежных средств, различной ролью в общественном воспроизводстве. Узнать больше о понятии финансов предприятия, налогах и сборах, вложении капитала можно на нашем сайте. Элементы налога

  23. “Реклама предлагает любить, а пиар – вызывает желание полюбить”, именно этим объясняется неизменный эффект пиар-мероприятия. Сейчас многие компании предлагают свои услуги и продукцию, однако как не затеряться в огромном количестве подобных компаний – ответ прост, необходимо создание фирменного стиля компании. Не следует тратить время на поиски рекламного агентства или pr менеджера. Зайдите на наш сайт и узнайте все, что Вам необходимо.
    Реклама и доверие потребителей

  24. Компании запускают бренды, зачастую как продолжения уже имеющихся линий, с поддержкой рекламы и без всяких шансов на поддержку в прессе. Такая комбинация губительна. Она сулит огромные финансовые потери, а надежды на успех почти равны нулю. Борьба за клиентов, непрерывное усовершенствование продукции, создание привлекательной рекламы – все это делается с одной целью – укрепить бренд на рынке. Узнать полные сведения о создании нового бренда с помощью пиара, создании бренда розничной торговли, возможностях создания уникального бренда, роли рекламы в сохранинеии бренда можно на нашем сайте.
    Реклама поддерживает бренды. Пиар создает бренды

  25. Сторонники рекламы будут зашишать свою работу на том основании, что она поднимает акции бренда, или служит инструментом создания бренда, или помогает установить связь с клиентами, или же способствует росту продаж. Ð’ какой-то степени это так, но никакие объективные требования тут невозможны, потому что реклама – это искусство. Вам не следует тратить время на поиски рекламного агентства или pr менеджера. Зайдите на наш сайт и узнайте все, что Вам необходимо.
    Креатив в рекламе

  26. Pingback: LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA JQUERY - Thiết kế website chuyên nghiệp !!

  27. Осуществлять процесс покупки/продажи посредством торговли на Forex могут практически все без ограничений. Участниками торговли на Forex становятся не только международные банки, производящие крупные денежные операции, но и многие другие финансово способные люди, совершающие более мелкие операции. Найти подробную информацию про то, что такое торговля Forex, биржевая торговля, про систему четырех линий, нерешительность трейдеров и многое другое Вы сможете на нашем сайте.
    Нерешительность трейдера

  28. Pingback: 3 Quick Steps for a Painless Upgrade to jQuery 1.3 » Learning jQuery - Tips, Techniques, Tutorials

  29. Pingback: 3 Quick Steps for a Painless Upgrade to jQuery 1.3 « Ajax Example

  30. Инвестиционная деятельность в определенной доле присуща любому
    предприятию. При значительном выборе видов инвестиций предприятие постоянно сталкивается с задачей выбора инвестиционного решения. Вероятность достижения цели зависит от правильности оценивания риска, полноты и точности его расчета. Так как же не ошибиться в правильности выбора инвестиционного решения? Об этом и многом другом вы узнаете на нашем сайте.
    Оперативный лизинг

  31. Pingback: 3 Quick Steps for a Painless Upgrade to jQuery 1.3

  32. Pingback: 3 Quick Steps for a Painless Upgrade to jQuery 1.3 | Jquery Cave

  33. Pingback: 3 Quick Steps for a Painless Upgrade to jQuery 1.3 W3C Tag