Как установить страницу загрузки во время загрузки представлений 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
.
Лучший учебник: Лучший учебник