Що нового в jQuery 3.0

4 хв. читання

Пройшло вже більше 10 років як jQuery завоював популярність у веб-розробників. І нещодавно вийшло важливе оновлення: jQuery 3.0. Воно робить jQuery ще швидшим, зберігаючи максимальну сумісність зі старими версіями. Ви можете завантажити jQuery 3.0 тут. Також є гід по оновленню так сирцевий код.

В цій статті ми розглянемо ключові зміни та те, як їх можна використати у своїх проектах.

1. jQuery 3.0 тепер написана в суворому режимі

Перш за все, потрібно відмітити, що jQuery тепер використовує суворий режим (strict mode). Strict mode Ваш код написаний в звичайному режимі? Не хвилюйтеся, ці режими спокійно вживаються поряд.

2. Цикл for .. of

jQuery 3.0 підтримує цикл for .. of, що прийшов на зміну $.each(). Це частина нового стандарту ES6. Він дозволяє в більш зручний шлях проходити по ітерованих об'єктах, таких як масиви і множини. Але пам'ятайте, що працює він лише в нових браузерах.

var items = $('.random-class');

// Старий синтаксис
$.each(items, function(index, value) {
 // щось робить
});

// Новий
for(let item of items) {
 // щось робить
};

3. requestAnimationFrame() для анімацій

jQuery 3.0 використовує API requestAnimationFrame() для анімацій. Це робить їх плавнішими, швидшими та потребує менше ресурсів. Підтримується воно майже всіма новими браузерами. А для таких мамонтів як IE9 використовується старий API. Більше про це можна почитати тут. requestAnimationFrame()

4. escapeSelector() для еканування запитів

Новий метод $.escapeSelector() дозволяє еканувати стрічки-запити. Тепер, якщо в назві вашого класу чи ідентифікатора є ключові символи CSS (як крапка чи крапка з комою), це не викличе некоректної роботи. Взагалі, це не дуже розповсюджена помилка, але тепер ви знаєте як її вирішити :)


<div></div>
// буде шукати елемент з id='abc' та class='def'
$('#abc.def')

// а тепер буде працювати як потрібно
$( '#' + $.escapeSelector( 'abc.def' ) )

5. Додатковий захист від XSS-атак

jQuery 3.0 додає додатковий захист від Cross-Site-Scripting-атак. Тепер, при завантаженні скрипту з іншого сайту вам потрібно явно це вказати, передавши параметром dataType: 'script'.

6. Видалення спеціальних відкладених методів з .ajax()

Об'єкт jqXHR, що повертається після виклику $.ajax() є відкладеним (Deferre). Раніше він мав ще три методи, що співпадали з іменами аргументів: success, error та complete. В третій версії їх прибрали, тепер ви повинні використовувати стандартні відкладені методи: fail, done та always. Або використовувати нові методи then та catch.

7. Методи .get() та .post() тепер мають нову сигнатуру

Також в третій версії до методів $.get() та $.post() додали параметр settings. Це об'єкт, що містить налаштування для запиту, він ідентичний тому, що передають в $.ajax(), за виключенням того, що ігнорує параметр method.

//HTTP Get
$.get([settings])

//HTTP Post
$.post([settings])

8. Маніпуляція з класами тепер підтримує SVG

До цього jQuery повністю не підтримував SVG. В новій версії це виправили. Тепер методи для маніпулювання класами (такі як .addClass() чи .hasClass()) працюють і для SVG.

9. Зрозуміла логіка show/hide

Це одна з найважливіших змін, яку вам доведеться пам'ятати завжди. Тепер методи .show(), .hide() та .toggle() використовують інлайнові стилі.

Якщо хочете більше ознайомитися з темою, то ось таблиця від розробників jQuery і дискусія на GitGub.

10. Точніші значення від методів .width () та .height ()

Раніше значення округлювалось до цілих, а тепер повертається більше точне значення: float з одним знаком після крапки. Це дуже корисне нововведення, адже іноді розробнику потрібна велика точність, яку отримати раніше було неможливо.

11. Методи .bind() та .delegate() об'явленні застарілими

В jQuery 1.7 з'явився новий метод для призначення обробників подій. А вже в третій версії старий API позначили як застарілий, і не виключено, що його видалять в наступних версіях. А саме це методи .bind(), unbind(), .delegate() та .undelegate(). Тому дуже рекомендовано використовувати .on()/.off().

Висновок

Багато людей вважають jQuery вже мертвим, і що йому нема місця в сучасному вебі. Але попри все вона розвивається і використовується. Ось невеличка статистика. Statistic

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація