Как установить страницу загрузки во время загрузки представлений Django

У меня есть приложение Django, в котором есть представление, которое извлекает данные из Bigquery, прежде чем вывести их на фронтенд. Этот процесс получения данных занимает довольно много времени, и фронтенд загрузится, как только представление закончит загрузку данных. Есть ли способ показать загрузочную страницу, пока Django представление вытягивает данные, а затем сделать так, чтобы она исчезла, как только все будет готово?

Я попробовал использовать код ниже:

function onReady(callback) {
     var intervalId = window.setInterval(function() {
        if (document.getElementsByTagName('body')[0] !== undefined) {
           window.clearInterval(intervalId);
             callback.call(this);
        }
    }, 1000);
}

function setVisible(selector, visible) {
    document.querySelector(selector).style.display = visible ? 'block' : 'none';
}

onReady(function() {
   setVisible('#app', true);
   setVisible('.loading', false);
});

Но кажется, что он все еще ждет загрузки данных, затем показывает страницу загрузки в течение 1-2 секунд, а затем сразу загружает фронтенд.

Я не силен в javascript, но я столкнулся с той же проблемой иногда назад и я использую Wayspoint для создания бесконечной прокрутки и у этого плагина есть два события, которые очень полезны: onAfterPageLoad и onBeforePageLoad. С помощью этих двух событий вы можете делать то, что хотите onBeforePageLoad вы можете установить спиннер (или что угодно, что вы хотите) и onAfterPageLoad скрыть его.
. Полная документация доступна здесь: Полная документация по Wayspoint
. Лучший учебник: Лучший учебник

Вернуться на верх