Як динамічно завантажувати контент сторінки за допомогою ajax і jquery

У цьому підручнику ми візьмемо середній звичайний веб-сайт і поліпшимо його за допомогою jQuery. Ми додамо AJAX-функціональності, яка дозволить вмісту динамічно завантажувати контент. без перезавантаження сторінки, в відповідний контейнер. Замість того, щоб змушувати користувача переходити на іншу сторінку. А також інтегруємо деякі приголомшливі анімаційні ефекти.

Для прикладу я спочатку побудував дуже простий макет. Ось скріншот і HTML-код, який ми будемо використовувати.

Як динамічно завантажувати контент сторінки за допомогою ajax і jquery

Спочатку підіть і скачайте останній стабільний реліз jQuery і додайте посилання на нього в ваш документ:

Як я вважаю, одна з кращих рис jQuery - це його простота. Можна досягти поставленого завдання в поєднанні з приголомшливими ефектами всього кількома рядками коду.

По-перше, давайте завантажимо бібліотеку jQuery і запустимо функцію, коли документ уже готовий (коли DOM вже завантажений).

Нам потрібно зробити так, щоб при натисканні на посилання в меню навігації на нашій сторінці, браузер не робив перехід на відповідну сторінку, а динамічно завантажував контент цієї сторінки всередину нашого макета, без перезавантаження.

Для цього нам потрібно визначити посилання в меню навігації і запускати цю функцію при натисканні на них:

Давайте визначимо, що ми повинні зробити в цій функції по порядку.

Видалити вміст поточної сторінки.

Отримати новий вміст сторінки і додати в вміст DIV.

Щоб наочно продемонструвати, що робить вищевказаний код, давайте уявимо, що користувач натискає на посилання 'about'. яка пов'язана зі сторінкою 'about.html' - в цій ситуації змінної буде: 'about.html #content' - і це саме та змінна, яку ми будемо запитувати при простому виклику. Однак перше, з чого ми почнемо - це створимо гарний ефект для вмісту поточної сторінки. Замість того, щоб воно просто зникало, ми використовуємо функцію «приховування» jQuery:

Зазначена функція швидко «ховає» #content div, і як тільки ефект закінчує свою дію, вона, в свою чергу, ініціює функцію «loadContent» (завантаження нового вмісту [через ajax]) - це функція, яку ми визначимо пізніше (в кроці 4 ).

Як тільки старе вміст зникне з приголомшуючим ефектом, нам не можна просто залишити користувачів в очікуванні, поки не з'явиться новий вміст (особливо якщо у них повільне з'єднання з Інтернетом), так що ми створимо трошки графіки «завантаження» щоб користувачі знали, що щось відбувається у фоновому режимі:

Ось CSS, що додається до свіжоствореному #load div:

Таким чином область, яка повинна містити анімацію завантаження, спочатку не відображається. Далі, при ініціалізації функції fadeIn () (див. Вище в коді), вона починає відображатися у верхньому правому куті сайту і показує анімований GIF, поки через деякий час знову не зникне з екрану.

Через деякий час, коли користувач натисне на одну з посилань, почне відбуватися наступне:

З'являється повідомлення про завантаження.

А тепер давайте напишемо ту саму функцію завантаження вмісту, про яку ми раніше говорили:

Функція loadContent викликає запитану сторінку, а коли це вже виконано, викликає функцію 'showNewContent' (показ нового вмісту):

Ця функція - showNewContent - використовує функцію show () jQuery (насправді, це дуже нудне назву для такого відмінного ефекту) з тим, щоб нове вміст, позначене міткою елемента '#content' з'явилося на сторінці. Одного разу викликана, вона ініціює функцію 'hideLoader' (зникання):

Нам необхідно пам'ятати, що функція обробки кліка повинна повернути «false», щоб браузер не зробив переходу на іншу сторінку.

Тепер все має працювати прекрасно. Приклад цього можна побачити тут: [LINK]

Вищевказаний код змінює значення URL на значення натиснутого атрибута 'href' (за винятком розширення '.html'). Тому, коли користувач клацає посилання 'home' (href = index.html), то хеш-значення буде виглядати як '#index'.

Кінець ...

На цьому, випуск присвячений створенню динамічного завантаження контенту, без перезавантаження сторінки, засобами AJAX і jQuery, завершено.

Переклад і редакція: Ріг Віктор і Андрій Бернацький. Команда webformyself.

Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі

файлу не існує, що знаходиться на відстані ...

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