Перейти к содержимому
Меню
Светлый путь
  • Главная
  • Документация
    • Php
    • Linux
    • Windows
    • Bitrix
    • WordPress
    • Полезное
  • Бесплатный хостинг
    • Российский бесплатный хостинг
    • Зарубежный бесплатный хостинг
Светлый путь

Подгрузка контента при скролленге в Bitrix

Опубликовано 5 июля, 202013 июля, 2020

Используя данное решение, можно избавиться от необходимости загружать из базы данных сразу весь контент, что значительно увеличит скорость загрузки всей страницы и уменьшит нагрузку на сервер баз данных.

И так, преступим непосредственно к реализации. Для начала на нужно кастомизировать шаблон компонента system.pagenavigation, он должен выглядеть примерно следующим образом:

<?if(!defined("B_PROLOG_INCLUDED")|| B_PROLOG_INCLUDED!==true)die(); $this->setFrameMode(true);
if(!$arResult["NavShowAlways"]){
if($arResult["NavRecordCount"] ==0 || ($arResult["NavPageCount"] == 1 && $arResult["NavShowAll"] ==false))
return;}?>
<div class="bottom_pager_ajax" style="clear:both;width:100%; height:1px;"> </div>
<script type="text/javascript">
//записываем количество страниц
var count = <?=$arResult["NavPageCount"];?>
//первый запрос происходит для второй страницы
var begin = 2;
var endScroll = false;
//определяем положение нашего пагинатора на странице
var getApprovalLoanPos = $('.bottom_pager_ajax').offset().top;


$function(){
//если есть еще элементы, которые мы не вывели,
//то при скролле до пагинатора показываем следующию порцию элементов
$(window).scroll(function(){
var bodyScroll = $(window).scrollTop() + $(window).height();
var scrollResult1 = getApprovalLoanPos - bodyScroll;
if(scrollResult1 < 50 && !endScroll && begin <= count){
endScroll = true;
loader();
}
})
});


//функция отправки ajax запроса
function loader(){
//показываем стандартный прелоадер битрикса
BX.showWait();
$.ajax({
url: "<?=$APPLICATION->GetCurPage();?>?PAGEN_1=" + begin,
type: "POST",
data: ({
resize: 'Y'
}),
success: function(data){
BX.closeWait();//скрываем стандартный прелоадер битрикса
$(".more_ajax").append(data);//добавляем эелементы на страницу
begin++;//переопределяем счетчик
getApprovalLoanPos = $('.bottom_pager_ajax').offset().top;
endScroll = false;
},
fail: function(){
//если ajax запрос не прошел, тогда просто 
//скрываем стандартный прелоадер битрикса
BX.closeWait();
}});
}
</script>

Затем на нужно кастомизировать шаблон вывода наших элементов (шаблон компонента news.list, section.list и т.д. у кого что использовалось):

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$this->setFrameMode(true);?>
<ul class="more_ajax">
<?//если запрос ajax, то очищаем буфер
if(IS_AJAX && $_REQUEST['resize'] == "Y")
$APPLICATION->RestartBuffer();?>
<?foreach ($arResult['ITEMS'] as $key => $arItem):
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], $strElementEdit);
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], $strElementDelete, $arElementDeleteParams);?>
<li>
<!-- Тут вывод описания вашего элемента -->
</li>
<?endforeach;?>
<?//если запрос ajax, то очищаем буфер
if(IS_AJAX && $_REQUEST['resize'] == "Y")die();?>
</ul>
<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
<?=$arResult["NAV_STRING"]?>
<?endif;?>

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Свежие записи

  • Настройка Wazuh 4.11 в качестве SIEM на CentOS 9
  • infinityfree.com
  • Создание API токена Zabbix 7.2.5
  • Установка и настройка Elasticsearch + kibana + logstash + filebeat 8.17 на CentOS9
  • Установка и настройка Fail2ban на старые машины Centos 7,8

Свежие комментарии

  • Vag-Key.ru к записи Подключения к MySQL через ODBC connector для 1С.
  • Offensive strategies к записи 0fees.net
  • tenisi к записи Capcha PHP

Архивы

  • Май 2025
  • Апрель 2025
  • Март 2025
  • Октябрь 2024
  • Сентябрь 2024
  • Август 2024
  • Апрель 2024
  • Март 2024
  • Январь 2024
  • Декабрь 2023
  • Октябрь 2023
  • Сентябрь 2023
  • Август 2023
  • Март 2023
  • Январь 2023
  • Декабрь 2022
  • Сентябрь 2022
  • Август 2022
  • Июль 2022
  • Июнь 2022
  • Май 2022
  • Июль 2021
  • Июнь 2021
  • Февраль 2021
  • Октябрь 2020
  • Сентябрь 2020
  • Август 2020
  • Июль 2020

Рубрики

  • Bitrix
  • htaccess
  • Linux
  • Mysql
  • Php
  • SEO
  • Windows
  • WordPress
  • Zabbix
  • Бесплатный хостинг
  • Веб Сервер
  • Виртуальные машины
  • Главная
  • Документация
  • Зарубежный бесплатный хостинг
  • Книги
  • Полезное
  • Российский бесплатный хостинг

Мета

  • Войти
  • Лента записей
  • Лента комментариев
  • WordPress.org

Search

Свежие записи

  • Настройка Wazuh 4.11 в качестве SIEM на CentOS 9
  • infinityfree.com
  • Создание API токена Zabbix 7.2.5
  • Установка и настройка Elasticsearch + kibana + logstash + filebeat 8.17 на CentOS9
  • Установка и настройка Fail2ban на старые машины Centos 7,8

Свежие комментарии

  • Vag-Key.ru к записи Подключения к MySQL через ODBC connector для 1С.
  • Offensive strategies к записи 0fees.net
  • tenisi к записи Capcha PHP

Архивы

  • Май 2025
  • Апрель 2025
  • Март 2025
  • Октябрь 2024
  • Сентябрь 2024
  • Август 2024
  • Апрель 2024
  • Март 2024
  • Январь 2024
  • Декабрь 2023
  • Октябрь 2023
  • Сентябрь 2023
  • Август 2023
  • Март 2023
  • Январь 2023
  • Декабрь 2022
  • Сентябрь 2022
  • Август 2022
  • Июль 2022
  • Июнь 2022
  • Май 2022
  • Июль 2021
  • Июнь 2021
  • Февраль 2021
  • Октябрь 2020
  • Сентябрь 2020
  • Август 2020
  • Июль 2020

Рубрики

  • Bitrix
  • htaccess
  • Linux
  • Mysql
  • Php
  • SEO
  • Windows
  • WordPress
  • Zabbix
  • Бесплатный хостинг
  • Веб Сервер
  • Виртуальные машины
  • Главная
  • Документация
  • Зарубежный бесплатный хостинг
  • Книги
  • Полезное
  • Российский бесплатный хостинг

Мета

  • Войти
  • Лента записей
  • Лента комментариев
  • WordPress.org

Тизер

cod

©2025 Светлый путь | На платформе SuperbThemes
Яндекс.Метрика
Этот веб-сайт использует файлы cookie. Продолжая здесь, вы соглашаетесь на использование файлов cookie.