Правильний ajax в 1с-бітрікс

За специфікою моєї роботи мені часто доводиться спілкуватися з розробниками, в тому числі розробниками на 1С-Бітрікс. При постановці завдань з оновленням даних без перезавантаження сторінки (Ajax) я часто чув про істотне збільшення термінів тільки через цю особливість. Після чергової такої розмови, я провів вебінар для своїх розробників, який розвіює міф про те, що Ajax складно інтегрується в Бітрікс. За матеріалами того вебінару я пишу цю статтю, сподіваюся вона допоможе іншим розробникам.

Розробляти ми будемо систему виведення випадкової цитати з Інфоблоки, з можливістю поставити лайк сподобалася цитаті.

Для початку створимо новий інфоблок «Цитати», додамо одну властивість типу число, з назвою «Рейтинг» і системним ім'ям «RATING».

Далі наповнимо інфоблок декількома тестовими записами.

Наступним кроком ми створимо папку «ajax / quotes» в корені сайту.

Всі запити можна розділити на два типи:

  1. Отримання даних з сервера
  2. Ефективно використовувати час

Домовимося, що для запитів першого типу сервер буде віддавати html.

Для запитів другого типу - Json.

Далі ми розглянемо обидва цих типу, але перед цим ми повинні розмістити компонент виведення випадкової цитати в шаблон сайту.

Для цього відкриємо на редагування файл index.php і в потрібне місце додамо наступний код (звертаю увагу, що необхідно скопіювати шаблон компонента news.list і назвати його - quotes):

Попередньо замінивши IBLOCK_IDD на ID вашого Інфоблоки цитат.

Для обробки кліка, необхідно додати наступний код у файлі script.js і підключити його в шаблоні:

Далі, для обробки лайка додамо jquery-код в наш скрипт script.js:

В ідеалі - слід створити компонент з цим кодом і підключити його в цьому файлі, але залишимо це вам в якості домашнього завдання.

Ось ми і розглянули процес реалізації ajax на CMS 1С-Бітрікс. Як ви можете бачити нічого складного. На основі цих двох прикладів може бути реалізована будь-яка інша логіка.

Схожі статті