Несколько Pjax на странице

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
NvAriec
Сообщения: 2
Зарегистрирован: 2019.03.27, 16:31

Несколько Pjax на странице

Сообщение NvAriec »

Добрый день.

Есть страница с четырьмя разными pjax виджетами. В каждом указан свой id и свой links-selector, а так же 'enablePushState' => false и таймаут в false.

Во вьюшке прописано следующее:

Код: Выделить всё

$script = <<< JS
$(document).ready(function() {
    setInterval(function(){ $("#refreshCallHasInfopovodsButton").click(); }, 3100);
    setInterval(function(){ $("#refreshStatusTask").click(); }, 3000);
});
$(document).ready(function(){ $("#refreshCallHasInfopovodsButton").click();
});
$(document).ready(function(){ $("#refreshAbonentInfoButton").click();
});


$(document).ready(function() {
    $('.js-example-basic-multiple').select2();
});
JS;

$this->registerJs($script);

Но при загрузке отрабатывают только оба setInterval и $(document).ready(function(){ $("#refreshAbonentInfoButton").click(); Второй .click не отрабатывает. Если поменять местами их, ситуация такая же. Отработает только тот, который стоит в конце.

Так же, есть ещё одна проблема.
Один из Pjax грузит контент, который выбирают из списка ссылок. Иногда приходится дважды кликать на ссылку. Первый запрос почему-то ничего не делает, в консоли появляются сообщения что запрос canceled и ругается что "Faild to load response data". Но такая же ситуация и с виджетами, что обновляются каждые 3000 и 3100 мс. Иногда проскакивают ошибочные запросы. А иногда страница редиректится на одну из страниц, запрашивающихся в Pjax.

В контроллерах везде прописан renderAjax для возврата значений. Ресурсов на серверах хватает. App и БД находятся на разных серверах. Таблицы из 10-20 значений.

В чём именно проблема и как диагностировать что происходит конкретно?
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Несколько Pjax на странице

Сообщение andku83 »

Код: Выделить всё

$(document).ready(function(){
    $("#refreshCallHasInfopovodsButton").click();
    $("#refreshAbonentInfoButton").click();
});
А по второму:
если при отправке нового pjax-запроса, есть старый (не важно такой же или другой), то старый будет отменен!
NvAriec
Сообщения: 2
Зарегистрирован: 2019.03.27, 16:31

Re: Несколько Pjax на странице

Сообщение NvAriec »

Спасибо.
До Вашего ответа к этому пришёл уже)
Переделал некоторые на Ajax.
Ответить