Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
«8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
Сертифицированный партнёр 1С-Битрикс Аккредитация на портале Госзакупок 44-ФЗ и 223-ФЗ Участник Московского инновационного кластера
E-mail
customer@8cores.ru
Адрес
г. Москва, ул. Окская, 20к2, пом. 5/1
Режим работы
Пн. – Пт.: с 08:00 до 18:00 (мск)
Продукты
  • Готовые сайты
    • Интернет-магазины
    • Корпоративные сайты
    • Отраслевые сайты
  • Лицензии 1С-Битрикс
  • Продления лицензий
Услуги
  • Разработка сайтов и приложений
    • Запуск сайта на готовом решении 1С-Битрикс
    • Хостинг. Регистрация доменов
    • Разработка сайтов
    • Перенос сайта на 1С-Битрикс
    • Разработка модулей для 1С-Битрикс
    • Лендинг/визитка
  • Интеграция
    • Интеграция сайта с 1С
    • Интеграция с CRM Битрикс24
    • ERP для Производственной компании
    • Интеграция с ФГИС "АРШИН"
    • Интеграция с ФГИС ФСА
  • Поддержка
    • Техническая поддержка
    • Доработка существующего сайта
  • Дизайн
    • Разработка дизайна сайта
  • Информационная безопасность
    • Проверка сайта и удаление вирусов
  • Импорт/Парсинг
Кейсы
  • Разработка сайта
  • Техподдержка сайта
  • Интеграция систем
Блог
Компания
  • О компании
  • Как мы работаем
  • Сертификаты
  • Реквизиты
  • Документы
  • Партнёры
  • Вакансии
Контакты
Москва
«8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
Сертифицированный партнёр 1С-Битрикс Аккредитация на портале Госзакупок 44-ФЗ и 223-ФЗ Участник Московского инновационного кластера
Продукты
  • Готовые сайты
    Готовые сайты
  • Лицензии 1С-Битрикс
    Лицензии 1С-Битрикс
  • Продления лицензий
    Продления лицензий
Услуги
  • Разработка сайтов и приложений
    Разработка сайтов и приложений
  • Интеграция
    Интеграция
  • Поддержка
    Поддержка
  • Дизайн
    Дизайн
  • Информационная безопасность
    Информационная безопасность
  • Импорт/Парсинг
    Импорт/Парсинг
Кейсы
  • Разработка сайта
  • Техподдержка сайта
  • Интеграция систем
Блог
Компания
  • О компании
  • Как мы работаем
  • Сертификаты
  • Реквизиты
  • Документы
  • Партнёры
  • Вакансии
Контакты
    Москва
    E-mail
    customer@8cores.ru
    Адрес
    г. Москва, ул. Окская, 20к2, пом. 5/1
    Режим работы
    Пн. – Пт.: с 08:00 до 18:00 (мск)
    «8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
    Продукты
    • Готовые сайты
      Готовые сайты
    • Лицензии 1С-Битрикс
      Лицензии 1С-Битрикс
    • Продления лицензий
      Продления лицензий
    Услуги
    • Разработка сайтов и приложений
      Разработка сайтов и приложений
    • Интеграция
      Интеграция
    • Поддержка
      Поддержка
    • Дизайн
      Дизайн
    • Информационная безопасность
      Информационная безопасность
    • Импорт/Парсинг
      Импорт/Парсинг
    Кейсы
    • Разработка сайта
    • Техподдержка сайта
    • Интеграция систем
    Блог
    Компания
    • О компании
    • Как мы работаем
    • Сертификаты
    • Реквизиты
    • Документы
    • Партнёры
    • Вакансии
    Контакты
      Москва
      «8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
      Телефоны
      E-mail
      customer@8cores.ru
      Адрес
      г. Москва, ул. Окская, 20к2, пом. 5/1
      Режим работы
      Пн. – Пт.: с 08:00 до 18:00 (мск)
      «8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
      • Продукты
        • Продукты
        • Готовые сайты
          • Готовые сайты
          • Интернет-магазины
          • Корпоративные сайты
          • Отраслевые сайты
        • Лицензии 1С-Битрикс
        • Продления лицензий
      • Услуги
        • Услуги
        • Разработка сайтов и приложений
          • Разработка сайтов и приложений
          • Запуск сайта на готовом решении 1С-Битрикс
          • Хостинг. Регистрация доменов
          • Разработка сайтов
          • Перенос сайта на 1С-Битрикс
          • Разработка модулей для 1С-Битрикс
          • Лендинг/визитка
        • Интеграция
          • Интеграция
          • Интеграция сайта с 1С
          • Интеграция с CRM Битрикс24
          • ERP для Производственной компании
          • Интеграция с ФГИС "АРШИН"
          • Интеграция с ФГИС ФСА
        • Поддержка
          • Поддержка
          • Техническая поддержка
          • Доработка существующего сайта
        • Дизайн
          • Дизайн
          • Разработка дизайна сайта
        • Информационная безопасность
          • Информационная безопасность
          • Проверка сайта и удаление вирусов
        • Импорт/Парсинг
      • Кейсы
        • Кейсы
        • Разработка сайта
        • Техподдержка сайта
        • Интеграция систем
      • Блог
      • Компания
        • Компания
        • О компании
        • Как мы работаем
        • Сертификаты
        • Реквизиты
        • Документы
        • Партнёры
        • Вакансии
      • Контакты
        • Телефоны
      • г. Москва, ул. Окская, 20к2, пом. 5/1
      • customer@8cores.ru
      • Пн. – Пт.: с 08:00 до 18:00 (мск)
      Сертифицированный партнёр 1С-Битрикс Аккредитация на портале Госзакупок 44-ФЗ и 223-ФЗ Участник Московского инновационного кластера
      Главная
      —
      Блог
      —
      1С-Битрикс
      —Ajax подгрузка контента при прокрутке

      Ajax подгрузка контента при прокрутке

      ajax подгрузка контента при прокрутке
      1С-Битрикс
      18 сентября 2024

      Ajax подгрузка при прокрутке страницы или так называемый «бесконечный скроллинг» — это способ автоматической подгрузки контента в момент, когда пользователь достигает конца списка.

      Ajax подгрузка при прокрутке страницы или так называемый «бесконечный скроллинг» — это способ автоматической подгрузки контента в момент, когда пользователь достигает конца списка.

      Чтобы реализовать данный функционал, нам понадобится кастомизированный шаблон компонента постраничной навигации и несколько строк js-кода.

      Итак, для начала копируем шаблон постранички, в компонент system.pagenavigation и переключаемся на этот шаблон в компоненте, который выводит контент. Пример над компонентом news.list.

      Теперь готовим наш news.list для работы с ajax-ом. Если у вас используется файл result_modifier.php, то лучше вставляйте этот код туда. Если же такого файла нет, то вставляйте код в самое начало файла template.php.

      if(array_key_exists("IS_AJAX", $_REQUEST) && $_REQUEST["IS_AJAX"] == "Y")
      {
          	$APPLICATION->RestartBuffer();
      }

      Этот код сбросит буфер страницы при обращении через ajax. Это нужно для того, чтобы при ajax-запросе мы не получили часть страницы выше нашего компонента (шапку сайта и так далее).

      Так же в самый конец файла component_epilog.php вставляйте следующий код (если такого файла нет, то вставляйте в самый низ файла template.php).

      if(array_key_exists("IS_AJAX", $_REQUEST) && $_REQUEST["IS_AJAX"] == "Y")
      {
          	die();
      }

      Этот код прекратит выполнение, если идёт ajax-запрос.

      То есть, при ajax-запросе мы получим только кусок контента, на который ссылается наша кнопка постраничной навигации (без шапки и футера).

      Остаётся только закинуть вот такой js-скрипт в ваш файл скриптов.

      $(function() {
          var load_more = false;
      
          $(window).scroll(function() {
              if($("#ajax_next_page").length && !load_more) {
                  var url = $("#ajax_next_page").attr("href");
                  var offset_button = $("#ajax_next_page").offset();
                  if($(this).scrollTop() >= offset_button.top - $(window).height()) {
                      load_more = true;
                      $.ajax({
                          url: url,
                          type: "POST",
                          data: {IS_AJAX: 'Y'},
                          success: function(data) {
                              $("#ajax_next_page").after(data);
                              $("#ajax_next_page").remove();
                              load_more = false;
                          }
                      });
                  }
              }
          });
      });


      При прокрутке (скроллинге) страницы, если мы достигли нашей кнопки постраничной навигации, выполняется ajax-запрос на URL кнопки. Полученный контент вставляется после кнопки, а затем кнопка удаляется.

      Если же нужно подгружать контент при клике на кнопку, то используйте вот этот скрипт:

      $(function() {
          var load_more = false;
      
          $(document).on("click", "#ajax_next_page", function(e) {
              e.preventDefault();
              if(load_more)
                  return false;
              var ajax_url = $(this).attr("href");
              load_more = true;
              $.ajax({
                  url: ajax_url,
                  type: "POST",
                  data: {IS_AJAX: 'Y'},
                  success: function(data) {
                      $("#ajax_next_page").after(data);
                  	$("#ajax_next_page").remove();
                  	load_more = false;
                  }
              });
          });
      });

      • Комментарии
      Загрузка комментариев...
      Назад к списку
      • 1С Администрирование 2
      • 1С-Битрикс 30
      • HTML/CSS 1
      • jQuery 2
      • PHP 2
      • Оптимизация 9
      1с 1С ajax apache api bitrix clean-param CRM cron curl etext get google htaccess html jivo jquery json market marketplace nginx openserver PageSpeed php php8 post robots robots.txt search seo web агенты администрирование артикул аспро битрикс боты вирус директория защита каталог композит кэш логи магазин маркетплейс метрика модальные окна настройка обмен онлайн консультант оптимизация ордер ошибки пагинация папка парсинг поиск покупка сервера склад скрипт спам страница тестирование троян ускорение установка ут цвета чпу юkassa яндекс
      Продукты
      Услуги
      Компания
      Блог
      Контакты
      Сертифицированный партнёр 1С-Битрикс Аккредитация на портале Госзакупок 44-ФЗ и 223-ФЗ Участник Московского инновационного кластера
      E-mail
      customer@8cores.ru
      Адрес
      г. Москва, ул. Окская, 20к2, пом. 5/1
      Режим работы
      Пн. – Пт.: с 08:00 до 18:00 (мск)
      customer@8cores.ru
      г. Москва, ул. Окская, 20к2, пом. 5/1
      © 2010-2026 «8 Ядер» - веб-студия полного цикла
      Политика конфиденциальности
      Разработано в