nepster-web
@nepster-web

Как обновить страницу целиком через ajax?

Задача такая, нужно обновить страницу с помощью ajax. Например пользователь авторизуется на сайте и должен увидеть все изменения после авторизации без перезагрузки страницы.

При успешном входе я возвращаю вот такой ответ:
return [
    'status' => 1,
    'message' => Yii::t('users', 'SIGNIN')
];


Если статус = 1, я пытаюсь сделать что-то такое:
jQuery('#bg-load').show();
$.get(document.URL, function( response ) {
    $('html').html(response);
    jQuery('#bg-load').hide();
});


Но все работает не совсем корректно , дизайн немного едет, некоторые скрипты отваливаются и лоадер выключается до того как все прогрузится.

В общем вывод, что я сделал что-то не так. Подскажите пожалуйста как это починить ?
  • Вопрос задан
  • 1797 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Yago
Вам надо переопределять все скрипты сайта и события после упешной подгрузки html-кода. Видимо, что-то конфликтует в случае повторной загрузки всех скриптов на сайт.

Или просто используйте перенаправление на ту же страницу после авторизации, тогда не надо будет извращаться с ajax-событиями после авторизации.

Если же ajax-авторизация обязательна, перегружайте только те блоки сайта, которые меняются после авторизации. Таким образом и ajax сохраните, и будете контролировать все действия после входа.
Ответ написан
Ваш ответ на вопрос

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

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