Djangoのviewで処理実行の間ローディング画面を表示するにはどうしたらいいですか?
基本的にはローディング画面は必要ないのですが、定期的にviewで重めの処理を行っているため、時間がかかってしまいます。そのためviewの処理時間が1.5秒以上経過したらその時点でローディング画面を表示し、処理完了ロード完了したらコンテンツを表示。1.5秒以内で終了するならローディング画面は表示しない。
###試したこと
template内にローディング時に表示するコンテンツを用意し、jsで表示、非表示を操作する。
html
1<div id="loading">ここにローディング画面内容</div>
js
1const loadingContainer = document.querySelector("#loading"); 2 // script読み込みから2秒後に実行される 3 // ローディング画面表示処理 4 const timeout = setTimeout(() => { 5 loadingContainer.style.visibility = "visible"; 6 }, 2000); 7 window.onload = () => { 8 // リソース読み込み完了時に 9 // ローディング画面表示処理をキャンセル 10 clearTimeout(timeout); 11 loadingContainer.style.visibility = "hidden"; 12 };
###問題点
template作成完了後からのロード時間には適用されるが、viewでの処理中は適応されず前ページのままロードしており、ロード画面は表示されない。
あなたの回答
tips
プレビュー