@Deemc
веб-программист

Фильтр новостей, используя RestartBuffer, работает некорректно. В чем может быть причина?

Добрый день.
С ajax подменой контента сталкиваюсь впервые, всегда делал просто гет параметрами в url.
Проблема такая:
1. перед вызовом компонента news прописал следующее:
if ($_GET['_ajax'] == 'y') {
                $GLOBALS['APPLICATION']->RestartBuffer();
}

2. После компонента:
if ($_GET['_ajax'] == 'y') {
   die();
}


Скрипт js:
$('.portfolio--filter a').click(function(){
    $('.portfolio--filter a').removeClass('active-link');
    $(this).addClass('active-link');
    let url = $(this).attr('href')+'?_ajax=y';
    $.ajax({
    url:     url,
    type:     "GET",
    success: function(response) {
      $('#portfolio-wrapper').html(response);
    },
    error: function(jqXHR, textStatus, errorThrown){ 
      console.log('Error: '+ errorThrown);
    }
  });
  return false;
})


Сам фильтр работает, но проблема в том, что в область контента вставляется вся страница сайта.
  • Вопрос задан
  • 1825 просмотров
Пригласить эксперта
Ответы на вопрос 1
smilingcheater
@smilingcheater
В параметры компонента попробуйте подставлять этот флаг, чтобы он учитывался в ключе кеша
'IS_AJAX' => $_GET['_ajax']
у вас компонент уже отработал и закешировался, соответственно код заново не выполняется

А почему вы не хотите встроенный в битрикс аяксовый режим для компонентов использовать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы