Страница 1 из 2

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

Добавлено: 2018.09.21, 15:51
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);
            });
        });
    }

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

Добавлено: 2018.09.21, 16:01
urichalex
renderAjax

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

Добавлено: 2018.09.21, 16:04
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.

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

Добавлено: 2018.09.21, 16:07
AZA
urichalex писал(а): 2018.09.21, 16:01renderAjax
Он грузит все скрипты,включая те которые уже давно загружены,и тем более скрипты которые внизу не видят pjax.

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

Добавлено: 2018.09.21, 16:24
andku83
AZA писал(а): 2018.09.21, 16:07 Он грузит все скрипты,включая те которые уже давно загружены,и тем более скрипты которые внизу не видят pjax.
они подключаются, а вот грузить или нет решает браузер (если они были загружены, то повторно не грузит, и соответственно не выполняет)

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

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

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

Добавлено: 2018.09.21, 18:48
andku83
Изображение

включите, и посмотрите/покажите лог запросов

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

Добавлено: 2018.09.21, 19:25
AZA
Хм странно,при renederAjax я не получаю json и наверное из этого перезагружается (Failed to load response data),с renderPartial все бенч.

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

Добавлено: 2018.09.21, 19:29
andku83
А при чем тут json?!
В приведенном коде нигде и не должно быть json'a.

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

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

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

Добавлено: 2018.09.21, 20:04
andku83
ajax ждет ответа, json - это формат данных(ответа) и ранее о нем вы не говорили, и если судить по js коду то ответ должен быть в виде html, а никак не json...

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

Добавлено: 2018.09.21, 20:05
andku83
AZA писал(а): 2018.09.21, 19:25 Хм странно,при renederAjax я не получаю json и наверное из этого перезагружается (Failed to load response data),с renderPartial все бенч.
смотрите по логам почему не пришло ответа от сервера, показывайте, или нужно предполагать что там происходит?

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

Добавлено: 2018.09.21, 20:16
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

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

Добавлено: 2018.09.22, 14:51
andku83
не в логах запросов браузера, а в логах сервера или yii

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

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

Оба эти метода перезагружают... Куда дальше копать не знаю.

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

Добавлено: 2018.09.22, 21:57
carono
перезагружаться может, если:
1. запрос идет долго, тогда нужно таймаут повышать
2. ошибка в скриптах при выполнении
3. от сервера 302 редирект приходит
больше не встречал причин рефреша

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

Добавлено: 2018.09.23, 01:13
andku83
carono писал(а): 2018.09.22, 21:57 перезагружаться может, если:
1. запрос идет долго, тогда нужно таймаут повышать
2. ошибка в скриптах при выполнении
3. от сервера 302 редирект приходит
больше не встречал причин рефреша
4. в прилетевшем контенте отсутствует блок с запрашиваемым id.

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

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

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

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

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

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

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

<?= Pjax::begin([
	'id' => 'product-list-pjax',
]) ?>

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

Добавлено: 2018.09.24, 18:11
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});
Бесполезно,перезагружается.