Страница 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
Он грузит все скрипты,включая те которые уже давно загружены,и тем более скрипты которые внизу не видят 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
для всех конструкций:
прописывать соответствующие id, а не позволять генерировать автоматически ('#p0')
Код: Выделить всё
<?= Pjax::begin([
'id' => 'product-list-pjax',
]) ?>
Re: Не грузит Front (JS скрипты)AJAX
Добавлено: 2018.09.24, 18:11
AZA
andku83 писал(а): ↑2018.09.23, 20:42
для всех конструкций:
прописывать соответствующие id, а не позволять генерировать автоматически ('#p0')
Код: Выделить всё
<?= Pjax::begin([
'id' => 'product-list-pjax',
]) ?>
А ты про этот id...
Тогда тупик.
Пробовал
$.pjax.reload('#pjax-container', {timeout : false});
$.pjax.reload('#pjax-container', {timeout : 100000});
Бесполезно,перезагружается.