すべてのページ要素にアクセスできるようになる前に、JavaScript の 3 つのファイル (かなり大きい) をロードする必要があるページがあります。リンクの 1 つがクリックされると、ロードが停止し、ページ全体がスクリプトを正しくロードしません。
すべてが読み込まれる前にページを黒くするオーバーレイでページをマスクすることで解決策を作ります。だから私のページの上に置いた
$(".black-overlay").show();
これは、9999 の z-index でページ全体をマスクする div です。次に、ページが読み込まれた後、
$(function() {
$(".black-overlay").hide();
});
私が読んだソースからは、ドキュメントの準備ができている機能と同じであるため、ページの読み込み後にオーバーレイが消えます。
私の問題は、これは時々しか機能しないことです。1 つのケースでは、オーバーレイは消えましたが、リンクはまだ壊れています (スクリプトがまだロードされていないことを意味します)。別のケースとして、次のような場合にオーバーレイが表示されないことがあります: 別のページに移動してからメイン ページに戻ると、メイン ページで、スクリプトが再度読み込まれている必要があるため、オーバーレイが再度表示されている必要があります。しかし、時々、それはうまく機能します。
この問題に対するよりクリーンな解決策はありますか?
[編集] これは特に、ウェブサイトへのインターネット接続が非常に遅い場合に発生します。