Не грузит Front (JS скрипты)AJAX

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

Приветствую,сделал подгрузку аяксом экшены,вроде бы все хорошо,но по какой-то причине не грузит js скрипты связанные с gridview,pjax и тд.

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


public  function actionIndex()
    {
        if  (Yii::$app->request->isAjax && Yii::$app->getRequest()->post('action'))
        {
            return call_user_func([$this,'action'.ucfirst(Yii::$app->getRequest()->post('action'))]);
        }
        return $this->render('index');
    }

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

   ajaxLoad()
    {
        $( ".mdl-layout__tab" ).each(function(i) {
            $.post(location.href,
                {
                    action:$(this).attr('data-model'),
                }
            ).done(function (data) {
                $(".page-content").append('<section class="mdl-layout__tab-panel" id="scroll-tab-'+ i + '">\n' +
                    '<div class="page-content"></div>\n' +
                    '</section>');
                $('#scroll-tab-'+i).find('.page-content').html(data);
            });
        });
    }
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Не грузит Front (JS скрипты)AJAX

Сообщение urichalex »

renderAjax
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

А если так?

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

   ajaxLoad()
    {
        $( ".mdl-layout__tab" ).each(function(i) {
            $(".page-content").append('<section class="mdl-layout__tab-panel" id="scroll-tab-'+ i + '">\n' +
                    '<div class="page-content"></div>\n' +
                    '</section>');
            $('#scroll-tab-'+i).find('.page-content').load($(this).attr('data-model'));
        });
    }
Вот мне только не понятно зачем там .each( и тем более .page-content внутри .page-content...
Возможно на второй итерации появится несколько элементов с одним ID.
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Re: Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

urichalex писал(а): 2018.09.21, 16:01renderAjax
Он грузит все скрипты,включая те которые уже давно загружены,и тем более скрипты которые внизу не видят pjax.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

AZA писал(а): 2018.09.21, 16:07 Он грузит все скрипты,включая те которые уже давно загружены,и тем более скрипты которые внизу не видят pjax.
они подключаются, а вот грузить или нет решает браузер (если они были загружены, то повторно не грузит, и соответственно не выполняет)
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Re: Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

andku83 писал(а): 2018.09.21, 16:24
AZA писал(а): 2018.09.21, 16:07 Он грузит все скрипты,включая те которые уже давно загружены,и тем более скрипты которые внизу не видят pjax.
они подключаются, а вот грузить или нет решает браузер (если они были загружены, то повторно не грузит, и соответственно не выполняет)
Ну хорошо,но почему страница при аяксах стала перезагружаться используя (renederajax)
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

Изображение

включите, и посмотрите/покажите лог запросов
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Re: Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

Хм странно,при renederAjax я не получаю json и наверное из этого перезагружается (Failed to load response data),с renderPartial все бенч.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

А при чем тут json?!
В приведенном коде нигде и не должно быть json'a.
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Re: Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

andku83 писал(а): 2018.09.21, 19:29 А при чем тут json?!
В приведенном коде нигде и не должно быть json'a.
Притом(Экшене),ajax ждет ответа,в итоги получаем ошибку(Описал выше) и перезагружается страница.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

ajax ждет ответа, json - это формат данных(ответа) и ранее о нем вы не говорили, и если судить по js коду то ответ должен быть в виде html, а никак не json...
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

AZA писал(а): 2018.09.21, 19:25 Хм странно,при renederAjax я не получаю json и наверное из этого перезагружается (Failed to load response data),с renderPartial все бенч.
смотрите по логам почему не пришло ответа от сервера, показывайте, или нужно предполагать что там происходит?
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Re: Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

andku83 писал(а): 2018.09.21, 20:05
AZA писал(а): 2018.09.21, 19:25 Хм странно,при renederAjax я не получаю json и наверное из этого перезагружается (Failed to load response data),с renderPartial все бенч.
смотрите по логам почему не пришло ответа от сервера, показывайте, или нужно предполагать что там происходит?
А смотреть то нечего.
renderAjax http://prntscr.com/kx5937
renderPartial http://prntscr.com/kx59eg
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

не в логах запросов браузера, а в логах сервера или yii
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Re: Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

andku83 писал(а): 2018.09.22, 14:51 не в логах запросов браузера, а в логах сервера или yii
Собственно понял в чем проблема,из обновления gridview страница почему перезагружается.
$.pjax.reload({container: '#p0'});
$('#gridview-container').yiiGridView('applyFilter');

Оба эти метода перезагружают... Куда дальше копать не знаю.
Аватара пользователя
carono
Сообщения: 52
Зарегистрирован: 2018.04.28, 11:05

Re: Не грузит Front (JS скрипты)AJAX

Сообщение carono »

перезагружаться может, если:
1. запрос идет долго, тогда нужно таймаут повышать
2. ошибка в скриптах при выполнении
3. от сервера 302 редирект приходит
больше не встречал причин рефреша
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

carono писал(а): 2018.09.22, 21:57 перезагружаться может, если:
1. запрос идет долго, тогда нужно таймаут повышать
2. ошибка в скриптах при выполнении
3. от сервера 302 редирект приходит
больше не встречал причин рефреша
4. в прилетевшем контенте отсутствует блок с запрашиваемым id.
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Re: Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

andku83 писал(а): 2018.09.23, 01:13
carono писал(а): 2018.09.22, 21:57 перезагружаться может, если:
1. запрос идет долго, тогда нужно таймаут повышать
2. ошибка в скриптах при выполнении
3. от сервера 302 редирект приходит
больше не встречал причин рефреша
4. в прилетевшем контенте отсутствует блок с запрашиваемым id.
Как добавить этот id?Остальные варианты пролетатют.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Не грузит Front (JS скрипты)AJAX

Сообщение andku83 »

для всех конструкций:

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

<?= Pjax::begin() ?>
прописывать соответствующие id, а не позволять генерировать автоматически ('#p0')

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

<?= Pjax::begin([
	'id' => 'product-list-pjax',
]) ?>
Аватара пользователя
AZA
Сообщения: 53
Зарегистрирован: 2018.01.02, 17:13

Re: Не грузит Front (JS скрипты)AJAX

Сообщение AZA »

andku83 писал(а): 2018.09.23, 20:42 для всех конструкций:

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

<?= Pjax::begin() ?>
прописывать соответствующие id, а не позволять генерировать автоматически ('#p0')

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

<?= Pjax::begin([
	'id' => 'product-list-pjax',
]) ?>
А ты про этот id...
Тогда тупик.
Пробовал
$.pjax.reload('#pjax-container', {timeout : false});
$.pjax.reload('#pjax-container', {timeout : 100000});
Бесполезно,перезагружается.
Ответить