- PVSM.RU - https://www.pvsm.ru -

jQuery 3.0 Final Released

9 июня 2016 года состоялся официальный релиз jQuery 3.0, которая была в разработке с октября 2014 года. Нашей целью было создание более легкой и быстрой версии jQuery (конечно, с обратной совместимостью). Мы удалили все старые костыли для IE и использовали некоторое более современное веб API там, где это необходимо. jQuery 3.0 является продолжением ветки 2.x, но с некоторыми изменениями, которые давно хотели внести. Такие ветки как 1.12 и 2.2 будут получать критические патчи в течение некоторого времени, но ожидать новый функционал в них не стоит. jQuery 3.0 — это будущее jQuery. Если вдруг Вам нужна поддержка IE 6-8, Вы можете продолжать использовать релиз версии 1.12.

image

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

Для помощи в апгрейде мы добавили новое руководство [1] по обновлению до версии 3.0, а плагин jQuery Migrate 3.0 [2] поможет определить проблемы совместимости в коде. Ваше мнение об изменениях очень поможет нам и поэтому, пожалуйста, попробуйте его на Вашем текущем проекте.

Разумеется, файлы jQuery 3.0 доступны из CDN:

https://code.jquery.com/jquery-3.0.0.js [3]
https://code.jquery.com/jquery-3.0.0.min.js [4]

Также можно установить через npm:

npm install jquery@3.0.0

Кроме того, у нас есть релиз jQuery Migrate 3.0. Мы настоятельно рекомендуем его использовать для устранения проблем, связанных с измененным функционалом в jQuery 3.0. Файлы также доступны в CDN:

https://code.jquery.com/jquery-migrate-3.0.0.js [5]
https://code.jquery.com/jquery-migrate-3.0.0.min.js [6]

И в npm:

npm install jquery-migrate@3.0.0

Для подробной информации об апгрейде веток jQuery 1.x и jQuery 2.x на jQuery 3.0 с плагином jQuery Migrate, читайте пост jQuery Migrate 1.4.1 [7].

Тонкая сборка

Наконец-то мы добавили что-то новое к этому релизу. Если Вам не нужен AJAX, или предпочитаете использовать одну из множества библиотек, ориентированных на AJAX-запросы, а также проще использовать комбинацию CSS с манипуляциями классов для всей анимации, то наряду с обычной версией jQuery, включающей в себя AJAX и модули эффектов, мы выпускаем «тонкую» версию, которая их не содержит. В общем, этот код считается устаревшим и мы просто его выбросили (шутка). В наше время размер jQuery очень редко беспокоит производительность, но тонкая версия на целых 6 Кб меньше обычной — 23.6к против 30к.

Эти файлы также доступны в CDN:

https://code.jquery.com/jquery-3.0.0.slim.js [8]
https://code.jquery.com/jquery-3.0.0.slim.min.js [9]

Эта сборка создана при помощи кастомной сборки API, позволяющей включать или исключать любые модули. Для получения дополнительной информации читайте jQuery README [10].

Совместимость с jQuery UI и jQuery Mobile

Большинство методов будет работать, но есть несколько моментов, которые мы реализуем в ближайшее время в jQuery UI и jQuery Mobile. Если Вы обнаружили проблему, имейте ввиду, что она может быть уже опубликована раннее и при помощи плагина jQuery Migrate 3.0 [11] устранена. Ожидайте релизов в ближайшее время.

Большие изменения

В этой статье приведены лишь основные моменты новых возможностей, улучшений и исправлений. Более подробно можно прочитать в инструкции по апгрейду [1]. Полный список исправленных проблем доступен в нашем баг-трекере на GitHub [12]. Если Вы читали блог по 3.0.0-rc1, приведенные ниже функции не изменились.

jQuery.Deferred теперь Promises/A+ совместимо

Объекты jQuery.Deferred были обновлены для совместимости с Promises/A+ и ES2015 Promises и проверены при помощи Promises/A+ Compliance Test Suite [13]. Это значит, что в методе .then() необходимо внести несколько существенных изменений. Конечно, можно восстановить любое использование .then() путем переименования в .pipe(), ныне считающимся устаревшим (и имеющим одинаковую подпись).

1 исправление

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

Example: uncaught exceptions vs. rejection values


var deferred = jQuery.Deferred();
deferred.then(function() {
  console.log("first callback");
  throw new Error("error in callback");
})
.then(function() {
  console.log("second callback");
}, function(err) {
  console.log("rejection callback", err instanceof Error);
});
deferred.resolve();
2 исправление

Раньше при регистрации «first callback» получали ошибку и весь последующий код прекращал работу. Ни второй «колбэк», ни третий не были зарегистрированы. Новый, совместимый со стандартами «колбэк», в случае успеха возвращает true. err — это значение отказа первого колбэка.

Состояние разрешения Deferred, созданного .then(), сейчас контролируется обратными вызовами-исключениями, возвращающими значения и non-thenable. В предыдущих версия, возвращались rejection значения.

Example: returns from rejection callbacks


var deferred = jQuery.Deferred();
deferred.then(null, function(value) {
  console.log("rejection callback 1", value);
  return "value2";
})
.then(function(value) {
  console.log("success callback 2", value);
  throw new Error("exception value");
}, function(value) {
  console.log("rejection callback 2", value);
})
.then(null, function(value) {
  console.log("rejection callback 3", value);
});
deferred.reject("value1");

Раннее, лог содержал “rejection callback 1 value1”, “rejection callback 2 value2”, and “rejection callback 3 undefined”.

Совместимый с новыми стандартами метод будет записывать логи вида: “rejection callback 1 value1”, “success callback 2 value2″, and “rejection callback 3 [object Error]”.

3 исправление

Колбэк всегда вызывается асинхронно, даже если Deferred был возвращен. Раньше они были синхронными.

Example: async vs sync


var deferred = jQuery.Deferred();
deferred.resolve();
deferred.then(function() {
  console.log("success callback");
});
console.log("after binding");

Раньше, лог содержал “success callback” then “after binding”. Теперь будет иметь вид “after binding” and then “success callback”.

ВНИМАНИЕ! В то время, как пойманные исключения имеют преимущества для отладки в браузере, это гораздо более «дружелюбный» метод, чтобы изучить причину возникновения колбэков. Имейте ввиду, что это всегда налагает на Вас ответственность в добавлении хотя бы одного колбэка для обработки отказов. В противном случае, ошибки могут остаться незамеченными...

Мы разработали совместимый с Deferreds плагин для помощи в дебаге — Promises/A+. Если Вы не видите нужной информации об ошибке в консоли для определения его источника, проверьте установлен ли плагин jQuery Deferred Reporter Plugin [14].

jQuery.when также был обновлен для принятия любого thenable объекта, который включает в себя собственные объекты Promise.
https://github.com/jquery/jquery/issues/1722 [15]
https://github.com/jquery/jquery/issues/2102 [16]

Добавлен .catch() в Deferreds

Метод catch() был добавлен в качестве псевдонима для .then(null, fn).
https://github.com/jquery/jquery/issues/2102 [16]

В случае ошибок главное не молчать

Возможно, Вы когда-либо задавались сумасшедшим вопросом «что за смещение окна?».

В прошлом, jQuery иногда пыталась вернуть такое нечто вместо обработки ошибок. В данном конкретном случае просит сместить окно до тех пор, пока оно не будет в положении { top: 0, left: 0 }. С помощью jQuery 3.0 такие случаи будут бросать ошибки, игнорируя эти безбашенные ответы.
https://github.com/jquery/jquery/issues/1784 [17]

Удалены устаревшие псевдонимы событий

.load, .unload и .error удалены. Вместо этого используйте .on().
https://github.com/jquery/jquery/issues/2286 [18]

Теперь с использованием анимации

requestAnimationFrame

На платформах, поддерживающих requestAnimationFrame API, который нынче всюду, кроме IE <= 9 и Android < 4.4, jQuery теперь будет использовать его для реализации анимации. Это должно увеличить плавность отрисовки, и уменьшить количество затраченного процессорного времени, следовательно, экономя заряд батареи на портативных устройствах.

Использование requestAnimationFram несколько лет назад создало бы серьезные проблемы совместимости [19] с существующим кодом, поэтому мы должны были исключить его в то время. Сейчас существует возможность приостановки выполнения анимации в то время, когда вкладка браузера «выходит» из поля зрения. Например, переключившись на другую вкладку. Тем не менее, любой код, зависящий от анимации, всегда работает практически в режиме реального времени и создает нереальную нагрузку.

Массивные ускорители для некоторых кастомных селекторов jQuery

Благодаря детективным работам Пола Ириш (Paul Irish) из Google, нам удалось определить некоторые случаи, когда мы упускали кучу работы с пользовательскими селекторами как, например, :visible многократно использовался в одном и том же документе. Этот редкий случай позволяет ускорить работу до 17 раз!

Имейте ввиду, что даже с этим улучшением, использование селекторов :visible и :hidden может быть затратным, потому что они зависят от браузера, который и определяет видим ли он сейчас на странице. Это может потребовать, в худшем случае, полный перерасчет CSS и разметки страницы! В то время, пока мы не препятствовали их использованию, рекомендуем проверить свои страницы для обнаружения проблем с производительностью.

Эти изменения фактически превратили его в 1.12/2.2, но мы бы хотели его улучшить в jQuery 3.0.
https://github.com/jquery/jquery/issues/2042 [20]

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

Changelog

Список изменений тут

Ajax

  • Выпнули 21 байт (eaa3e9f [21])
  • Сохранение кэша URL-запросов (#1732 [22], e077ffb [23])
  • Выполнение колбэка jQuery#load с корректным контекстом (#3035 [24], 5d20a3c [25])
  • Большая честь обеспечению ajaxSettings.traditional (#3023 [26], df2051c [27])
  • Удаление неиспользуемой функции jQuery.trim (0bd98b1 [28])

Аттрибуты

  • Избегание бесконечной рекурсии на нестрочных аттрибутах (#3133 [29], e06fda6 [30])
  • Добавлен комментарий поддержки и исправлен хук с ссылкой @ tabIndex (9cb89bf [31])
  • Свернуть/развернуть пространство для присваивания значений при выборе (#2978 [32], 7052698 [33])
  • Удалена проверка избыточности родителя (b43a368 [34])
  • Исправлена выбранная опция в IE <= 11 (#2732 [35], 780cac8 [36])

CSS

  • В IE 11 не работает внутри iframe в режиме полного экрана (#3041 [37], ff1a082 [38])
  • Переключение отдельных элементов как видимый, если они не имеют параметр display: none (#2863 [39], 755e7cc [40])
  • Убедитесь, что elem.ownerDocument.defaultView не является нулевым (#2866 [41], 35c3148 [42])
  • Добавить анимационную итерацию счетчика в cssNumber (#2792 [43], df822ca [44])
  • Восстановить поведение переопределения каскада в .show (#2654 [45], #2308 [46], dba93f7 [47])
  • Остановить Firefox от лечения отключенных элементов как скрыто-каскадных (#2833 [48], fe05cf3 [49])

Core

  • Implement ready without Deferred (#1778 [50], #1823 [51], 5cbb234 [52])
  • Improve isNumeric logic and test coverage (#2780 [53], 7103d8e [54])
  • Set the base href of the context in parseHTML (#2965 [55], 10fc590 [56])
  • Simplify isPlainObject (#2986 [57], e0d3bfa [58])
  • Add test for `jQuery.isPlainObject(localStorage)` (ce6c83f [59])
  • Do not expose second argument of the `jQuery.globalEval` (6680c1b [60])
  • Deprecate jQuery.parseJSON (#2800 [61], 93a8fa6 [62])

Deferred

  • Separate the two paths in jQuery.when (#3029 [63], 356a3bc [64])
  • Provide explicit undefined context for jQuery.when raw casts (#3082 [65], 7f1e593 [66])
  • Remove default callback context (#3060 [67], 7608437 [68])
  • Warn on exceptions that are likely programming errors (#2736 [69], 36a7cf9 [70])
  • Propagate progress correctly from unwrapped promises (#3062 [71], d5dae25 [72])
  • Make jQuery.when synchronous when possible (#3100 [73], de71e97 [74])
  • Remove undocumented progress notifications in $.when (#2710 [75], bdf1b8f [76])
  • Give better stack diagnostics on exceptions (07c11c0 [77])

Dimensions

  • Add tests for negative borders & paddings (f00dd0f [78])

Docs

  • Fix various spelling errors (aae4411 [79])
  • Update support comments related to IE (693f1b5 [80])
  • Fix an incorrect comment in the attributes module (5430c54 [81])
  • Updated links to https where they are supported. (b0b280c [82])
  • Update support comments to follow the new syntax (6072d15 [83])
  • Use https where possible (1de8346 [84])
  • Use HTTPS URLs for jsfiddle & jsbin (63a303f [85])
  • Add FAQ to reduce noise in issues (dbdc4b7 [86])
  • Add a note about loading source with AMD (#2714 [87], e0c25ab [88])
  • Add note about code organization with AMD (#2750 [89], dbc4608 [90])
  • Reference new feature guidelines and API tenets (#2320 [91], 6054139 [92])

Effects

  • Remove width/height exception for oldIE (#2488 [93], e04e246 [94])
  • Add tests for using jQuery.speed directly (#2716 [95], cb80b42 [96])

Event

  • Allow constructing a jQuery.Event without a target (#3139 [97], 2df590e [98])
  • Add touch event properties, eliminates need for a plugin (#3104 [99], f595808 [100])
  • Add the most commonly used pointer event properties (7d21f02 [101])
  • Remove fixHooks, propHooks; switch to ES5 getter with addProp (#3103 [102], #1746 [103], e61fccb [104])
  • Make event dispatch optimizable by JavaScript engines (9f268ca [105])
  • Evaluate delegate selectors at add time (#3071 [106], 7fd36ea [107])
  • Cover invalid delegation selector edge cases (e8825a5 [108])
  • Fix chaining .on() with null handlers (#2846 [109], 17f0e26 [110])
  • Remove pageX/pageY fill for event object (#3092 [111], 931f45f [112])

Events

  • Don’t execute native stop(Immediate)Propagation from simulation (#3111 [113], 94efb79 [114])

Manipulation

  • Bring tagname regexes up to spec (#2005 [115], fb9472c [116])

Offset

  • Resolve strict mode ClientRect “no setter” exception (3befe59 [117])

Selector

Serialize

  • Treat literal and function-returned null/undefined the same (#3005 [123], 9fdbdd3 [124])
  • Reduce size (91850ec [125])

Support

  • Improve support properties computation (#3018 [126], 44cb97e [127])

Tests

  • Take Safari 9.1 into account (234a2d8 [128])
  • Limit selection to #qunit-fixture in attributes.js (ddb2c06 [129])
  • Set Edge’s expected support for clearCloneStyle to true (28f0329 [130])
  • Fix Deferred tests in Android 5.0’s stock Chrome browser & Yandex.Browser (5c01cb1 [131])
  • Add additional test for jQuery.isPlainObject (728ea2f [132])
  • Build: update QUnit and fix incorrect test (b97c8d3 [133])
  • Fix manipulation tests in Android 4.4 (0b0d4c6 [134])
  • Remove side-effects of one attributes test (f9ea869 [135])
  • Account for new offset tests (f52fa81 [136])
  • Make iframe tests wait after checking isReady (08d73d7 [137])
  • Refactor testIframe() to make it DRYer and more consistent (e5ffcb0 [138])
  • Weaken sync-assumption from jQuery.when to jQuery.ready.then (f496182 [139])
  • Test element position outside view (#2909 [140], a2f63ff [141])
  • Make the regex catching Safari 9.0/9.1 more resilient (7f2ebd2 [142])

Traversing

  • .not/.filter consistency with non-elements (#2808 [143], 0e2f8f9 [144])
  • Never let .closest() match positional selectors (#2796 [145], a268f52 [146])
  • Restore jQuery push behavior in .find (#2370 [147], 4d3050b [148])

Автор: Helldar

Источник [149]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/interfejsy/131035

Ссылки в тексте:

[1] новое руководство: http://jquery.com/upgrade-guide/3.0/

[2] jQuery Migrate 3.0: https://github.com/jquery/jquery-migrate#migrate-older-jquery-code-to-jquery-30

[3] https://code.jquery.com/jquery-3.0.0.js: https://code.jquery.com/jquery-3.0.0.js

[4] https://code.jquery.com/jquery-3.0.0.min.js: https://code.jquery.com/jquery-3.0.0.min.js

[5] https://code.jquery.com/jquery-migrate-3.0.0.js: https://code.jquery.com/jquery-migrate-3.0.0.js

[6] https://code.jquery.com/jquery-migrate-3.0.0.min.js: https://code.jquery.com/jquery-migrate-3.0.0.min.js

[7] jQuery Migrate 1.4.1: http://blog.jquery.com/2016/05/19/jquery-migrate-1-4-1-released-and-the-path-to-jquery-3-0/

[8] https://code.jquery.com/jquery-3.0.0.slim.js: https://code.jquery.com/jquery-3.0.0.slim.js

[9] https://code.jquery.com/jquery-3.0.0.slim.min.js: https://code.jquery.com/jquery-3.0.0.slim.min.js

[10] jQuery README: https://github.com/jquery/jquery/blob/master/README.md#how-to-build-your-own-jquery

[11] jQuery Migrate 3.0: http://code.jquery.com/jquery-migrate-3.0.0.js

[12] баг-трекере на GitHub: https://github.com/jquery/jquery/issues?q=is%3Aissue+milestone%3A3.0.0

[13] Promises/A+ Compliance Test Suite: https://github.com/promises-aplus/promises-tests

[14] jQuery Deferred Reporter Plugin: https://github.com/dmethvin/jquery-deferred-reporter

[15] https://github.com/jquery/jquery/issues/1722: https://github.com/jquery/jquery/issues/1722

[16] https://github.com/jquery/jquery/issues/2102: https://github.com/jquery/jquery/issues/2102

[17] https://github.com/jquery/jquery/issues/1784: https://github.com/jquery/jquery/issues/1784

[18] https://github.com/jquery/jquery/issues/2286: https://github.com/jquery/jquery/issues/2286

[19] серьезные проблемы совместимости: http://blog.jquery.com/2011/09/01/jquery-1-6-3-released/

[20] https://github.com/jquery/jquery/issues/2042: https://github.com/jquery/jquery/issues/2042

[21] eaa3e9f: https://github.com/jquery/jquery/commit/eaa3e9f0cfc68083556cf61195821d90e369f646

[22] #1732: https://github.com/jquery/jquery/issues/1732

[23] e077ffb: https://github.com/jquery/jquery/commit/e077ffb083743f4a4b990f586c9d25d787e7b417

[24] #3035: https://github.com/jquery/jquery/issues/3035

[25] 5d20a3c: https://github.com/jquery/jquery/commit/5d20a3c3f10bda935c8370392a25e45719afa6b9

[26] #3023: https://github.com/jquery/jquery/issues/3023

[27] df2051c: https://github.com/jquery/jquery/commit/df2051cf59d054d7ee91bdb554b583471942c6b4

[28] 0bd98b1: https://github.com/jquery/jquery/commit/0bd98b1b13872255225358f328bee1f980755483

[29] #3133: https://github.com/jquery/jquery/issues/3133

[30] e06fda6: https://github.com/jquery/jquery/commit/e06fda69f00082b44fd39ce8e851f72d29999011

[31] 9cb89bf: https://github.com/jquery/jquery/commit/9cb89bf91d034ec7166d9215e2f80fa765292975

[32] #2978: https://github.com/jquery/jquery/issues/2978

[33] 7052698: https://github.com/jquery/jquery/commit/70526981916945dc4093e116a3de61b1777d4718

[34] b43a368: https://github.com/jquery/jquery/commit/b43a3685b60b307d61f41f0c94412380ed46ab22

[35] #2732: https://github.com/jquery/jquery/issues/2732

[36] 780cac8: https://github.com/jquery/jquery/commit/780cac802b32a0125c467a644b3803be378ae6ab

[37] #3041: https://github.com/jquery/jquery/issues/3041

[38] ff1a082: https://github.com/jquery/jquery/commit/ff1a0822f72d2b39fac691dfcceab6ede5623b90

[39] #2863: https://github.com/jquery/jquery/issues/2863

[40] 755e7cc: https://github.com/jquery/jquery/commit/755e7ccf018eb150eddefe78063a9ec58b3229e3

[41] #2866: https://github.com/jquery/jquery/issues/2866

[42] 35c3148: https://github.com/jquery/jquery/commit/35c314827d8b5b4eb996cf590d8254eea48a3896

[43] #2792: https://github.com/jquery/jquery/issues/2792

[44] df822ca: https://github.com/jquery/jquery/commit/df822caff079177d1840d67e03d6b24a93ea99a5

[45] #2654: https://github.com/jquery/jquery/issues/2654

[46] #2308: https://github.com/jquery/jquery/issues/2308

[47] dba93f7: https://github.com/jquery/jquery/commit/dba93f79c405373ec3a492fd0a4bf89b3136a6e6

[48] #2833: https://github.com/jquery/jquery/issues/2833

[49] fe05cf3: https://github.com/jquery/jquery/commit/fe05cf37ffd4795988f9b2343df2182e108728ca

[50] #1778: https://github.com/jquery/jquery/issues/1778

[51] #1823: https://github.com/jquery/jquery/issues/1823

[52] 5cbb234: https://github.com/jquery/jquery/commit/5cbb234dd3273d8e0bbd454fb431ad639c7242c1

[53] #2780: https://github.com/jquery/jquery/issues/2780

[54] 7103d8e: https://github.com/jquery/jquery/commit/7103d8ef47e04a4cf373abee0e8bfa9062fd616f

[55] #2965: https://github.com/jquery/jquery/issues/2965

[56] 10fc590: https://github.com/jquery/jquery/commit/10fc59007d717432ea126e49ce4142e6c4d5136e

[57] #2986: https://github.com/jquery/jquery/issues/2986

[58] e0d3bfa: https://github.com/jquery/jquery/commit/e0d3bfa77073a245ca112736a1ed3db07d5adcf6

[59] ce6c83f: https://github.com/jquery/jquery/commit/ce6c83f710c28108ccb4d50a7b924baa890dc961

[60] 6680c1b: https://github.com/jquery/jquery/commit/6680c1b29ea79bf33ac6bd31578755c7c514ed3e

[61] #2800: https://github.com/jquery/jquery/issues/2800

[62] 93a8fa6: https://github.com/jquery/jquery/commit/93a8fa6bfc1c8a469e188630b61e736dfb69e128

[63] #3029: https://github.com/jquery/jquery/issues/3029

[64] 356a3bc: https://github.com/jquery/jquery/commit/356a3bccb0e7468a2c8ce7d8c9c6cd0c5d436b8b

[65] #3082: https://github.com/jquery/jquery/issues/3082

[66] 7f1e593: https://github.com/jquery/jquery/commit/7f1e59343b1600e530472a90aa27a2bcc7b72c96

[67] #3060: https://github.com/jquery/jquery/issues/3060

[68] 7608437: https://github.com/jquery/jquery/commit/76084372c29a59b3fa790ea4d2687f0767514999

[69] #2736: https://github.com/jquery/jquery/issues/2736

[70] 36a7cf9: https://github.com/jquery/jquery/commit/36a7cf9b1e1f96fe27710ab3f06043d01ad54d0e

[71] #3062: https://github.com/jquery/jquery/issues/3062

[72] d5dae25: https://github.com/jquery/jquery/commit/d5dae259eb52a838f94703d51999f63deec19bfd

[73] #3100: https://github.com/jquery/jquery/issues/3100

[74] de71e97: https://github.com/jquery/jquery/commit/de71e9755fc0b5d45ee3fa1bac5481c2466dad6e

[75] #2710: https://github.com/jquery/jquery/issues/2710

[76] bdf1b8f: https://github.com/jquery/jquery/commit/bdf1b8f317d793d8ebbbe7787955edabf201a685

[77] 07c11c0: https://github.com/jquery/jquery/commit/07c11c03cc7f6d182eab9b50e2f3908ee397f70f

[78] f00dd0f: https://github.com/jquery/jquery/commit/f00dd0f0b278b15c89b0924d82c61bd91ceabf55

[79] aae4411: https://github.com/jquery/jquery/commit/aae44111e2d30d908b48f6711272efddb84e6b79

[80] 693f1b5: https://github.com/jquery/jquery/commit/693f1b537b0a19cda8b7e8f5379bffa5351b8a6e

[81] 5430c54: https://github.com/jquery/jquery/commit/5430c540dfedf1a64558d5f55f668904ee787817

[82] b0b280c: https://github.com/jquery/jquery/commit/b0b280cd61d1fa12b67bd723ac2c2fa91b92db01

[83] 6072d15: https://github.com/jquery/jquery/commit/6072d150d61655ec07f714e1d58a0bd7baa5ec3f

[84] 1de8346: https://github.com/jquery/jquery/commit/1de834672959636da8c06263c3530226b17a84c3

[85] 63a303f: https://github.com/jquery/jquery/commit/63a303f7392fdb16bcf767f04cca27207b202b9f

[86] dbdc4b7: https://github.com/jquery/jquery/commit/dbdc4b761b51c59c90e05fe2fb8977d2182ba992

[87] #2714: https://github.com/jquery/jquery/issues/2714

[88] e0c25ab: https://github.com/jquery/jquery/commit/e0c25abb435db6e210d00407af2ba40e5f0b56ad

[89] #2750: https://github.com/jquery/jquery/issues/2750

[90] dbc4608: https://github.com/jquery/jquery/commit/dbc4608ed10bd1347649e6f1514f459957cda003

[91] #2320: https://github.com/jquery/jquery/issues/2320

[92] 6054139: https://github.com/jquery/jquery/commit/605413994f06b01b0295ff681e9043049542b99a

[93] #2488: https://github.com/jquery/jquery/issues/2488

[94] e04e246: https://github.com/jquery/jquery/commit/e04e246552c27e872bbf4ae00b55def02b197189

[95] #2716: https://github.com/jquery/jquery/issues/2716

[96] cb80b42: https://github.com/jquery/jquery/commit/cb80b42b91bc7d0e75fb842f733878b848a8b9c1

[97] #3139: https://github.com/jquery/jquery/issues/3139

[98] 2df590e: https://github.com/jquery/jquery/commit/2df590e4ecfb8874b1deaca26d3c4cc2b7f7b140

[99] #3104: https://github.com/jquery/jquery/issues/3104

[100] f595808: https://github.com/jquery/jquery/commit/f5958085cfb91f9a5e4251cd24b474bf9bb2dc1c

[101] 7d21f02: https://github.com/jquery/jquery/commit/7d21f02b9ec9f655583e898350badf89165ed4d5

[102] #3103: https://github.com/jquery/jquery/issues/3103

[103] #1746: https://github.com/jquery/jquery/issues/1746

[104] e61fccb: https://github.com/jquery/jquery/commit/e61fccb9d736235b4b011f89cba6866bc0b8997d

[105] 9f268ca: https://github.com/jquery/jquery/commit/9f268caaf43629addb9a1a2001ab341839300b14

[106] #3071: https://github.com/jquery/jquery/issues/3071

[107] 7fd36ea: https://github.com/jquery/jquery/commit/7fd36ea145a11d5896de6d064b546b1c57a83f34

[108] e8825a5: https://github.com/jquery/jquery/commit/e8825a529b97a27b8b2e40eaaa7773189642c772

[109] #2846: https://github.com/jquery/jquery/issues/2846

[110] 17f0e26: https://github.com/jquery/jquery/commit/17f0e26ad9eba67ab274d12274cf7c23c8c688fd

[111] #3092: https://github.com/jquery/jquery/issues/3092

[112] 931f45f: https://github.com/jquery/jquery/commit/931f45fc387d68cfce004f786330d18f74cf03e5

[113] #3111: https://github.com/jquery/jquery/issues/3111

[114] 94efb79: https://github.com/jquery/jquery/commit/94efb7992911b6698f900f5b816d043b468bc277

[115] #2005: https://github.com/jquery/jquery/issues/2005

[116] fb9472c: https://github.com/jquery/jquery/commit/fb9472c7fbf9979f48ef49aff76903ac130d0959

[117] 3befe59: https://github.com/jquery/jquery/commit/3befe5911af0cf516896482bb9ddf197c8cb8a8e

[118] #2073: https://github.com/jquery/jquery/issues/2073

[119] 0402963: https://github.com/jquery/jquery/commit/0402963845be8d71c4e8ddf65e7c055014739b60

[120] 5c4be05: https://github.com/jquery/jquery/commit/5c4be05d3b32456553dc944853b77fa96ae8b2b8

[121] #1761: https://github.com/jquery/jquery/issues/1761

[122] 25068bf: https://github.com/jquery/jquery/commit/25068bf2c664e05d5ae48d8d2fb480ee572d3b97

[123] #3005: https://github.com/jquery/jquery/issues/3005

[124] 9fdbdd3: https://github.com/jquery/jquery/commit/9fdbdd393a0f0ebdcd837cf102878c8b45860c3b

[125] 91850ec: https://github.com/jquery/jquery/commit/91850ecbbe04ad8f5d89dc050aa1d9002047c435

[126] #3018: https://github.com/jquery/jquery/issues/3018

[127] 44cb97e: https://github.com/jquery/jquery/commit/44cb97e0cfc8d3e62bef7c621bfeba6fe4f65d7c

[128] 234a2d8: https://github.com/jquery/jquery/commit/234a2d828021b6eb36d83d83cc30c5a09045e781

[129] ddb2c06: https://github.com/jquery/jquery/commit/ddb2c06f51a20d1da2d444ecda88f9ed64ef2e91

[130] 28f0329: https://github.com/jquery/jquery/commit/28f0329a02c453ae26b6bc028b6aaeec578bef6f

[131] 5c01cb1: https://github.com/jquery/jquery/commit/5c01cb1cc4a41b29d6739d061de8217c33037639

[132] 728ea2f: https://github.com/jquery/jquery/commit/728ea2f27720a351a014b698fd66d25075c0c5e3

[133] b97c8d3: https://github.com/jquery/jquery/commit/b97c8d30c5aedace75dc17056d429f28e41b20c1

[134] 0b0d4c6: https://github.com/jquery/jquery/commit/0b0d4c634ab8a953a58bf531dd93e0ea4d632fdd

[135] f9ea869: https://github.com/jquery/jquery/commit/f9ea869ab5e887dad28088f6b477fa2ecac747a9

[136] f52fa81: https://github.com/jquery/jquery/commit/f52fa81811c173e300a75306436d66f27f30bbb3

[137] 08d73d7: https://github.com/jquery/jquery/commit/08d73d7f9c7eec2f0abd14d00bf903625728ef17

[138] e5ffcb0: https://github.com/jquery/jquery/commit/e5ffcb0838c894e26f4ff32dfec162cf624d8d7d

[139] f496182: https://github.com/jquery/jquery/commit/f4961822160c671fd72f1da7501049aab6cfd56b

[140] #2909: https://github.com/jquery/jquery/issues/2909

[141] a2f63ff: https://github.com/jquery/jquery/commit/a2f63ffd9640ce1e13465f718b1e2c6ca87f8772

[142] 7f2ebd2: https://github.com/jquery/jquery/commit/7f2ebd2c4dea186d7d981b939e6e2983a9d7f9c1

[143] #2808: https://github.com/jquery/jquery/issues/2808

[144] 0e2f8f9: https://github.com/jquery/jquery/commit/0e2f8f9effd2c95647be534bf9055e099aad7cfd

[145] #2796: https://github.com/jquery/jquery/issues/2796

[146] a268f52: https://github.com/jquery/jquery/commit/a268f5225cad9ab380494e61a10105cc9eb107e7

[147] #2370: https://github.com/jquery/jquery/issues/2370

[148] 4d3050b: https://github.com/jquery/jquery/commit/4d3050b3d80dc58cdcca0ce7bfdd780e50b0483f

[149] Источник: https://habrahabr.ru/post/303034/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best