@shedy2

Подвисает браузер при загрузке достаточно большой страницы через Ajax. Как правильно?

В моём веб-приложении использую аякс навигацию самым обычным образом, с помощью Jquery.
Вешаю на див gif-прелоадер перед стартом загрузки (вешал на другие дивы - ситуация та же).

Перед выводом html кода (в перемешку с ссылками на js,css) в блок я убираю прелоадер. Тут и начинается самое интересное. Прелоадер просто останавливается на ~секунду, потом пропадает, появляется содержимое и всё работает.

Проблема в том, что gif прелоадер останавливается.. Как этого избежать?

глючит меньше раза в 2-3, даже если все скрипты и стили удаляю из html:

function setHtml(obj, htmlPart) {
        htmlPart = htmlPart.replace(/<script(.*)<\/script>/mi, '');
        htmlPart = htmlPart.replace(/<link(.*)>/mi, '');

        obj.html(htmlPart);
    }


глючит даже если через innerHTML вставляю..

Как убрать это подвисание? Может кто сталкивался?
  • Вопрос задан
  • 2772 просмотра
Пригласить эксперта
Ответы на вопрос 1
laska
@laska
PHP/JS разработчик
Так и должно быть, это оптимизация браузера. Сначала браузер выполнит весь js, потом только страница перерендерится. Если js выполняется достаточно долгое время, то заметен лаг прелоадера.

Я сам не знаю ответ, поэтому подпишусь на вопрос.

Но возможно поможет асинхронность: сначала убрать лоадер, потом через setTimeout выполнить остальной скрипт.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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