私には .php ページが多数あり、それぞれが HTML Web ページに対応しています。各ページが完全に処理されて読み込まれるまでに約 1 分ほどかかります。ページが完全に読み込まれたときに、読み込み中の画像をユーザーに表示したいと考えています。
私は論理的に、最初に画像をロードし、.php が処理されている間メインコンテンツは非表示のままにするような方法を考えました。php がロードされると、JavaScript のトリガーとして機能する要素をエコーできるようになり、表示スタイルを変更します。メインコンテンツの非表示からブロックまで。しかし、出力を表示するには、Apache が php をロードする必要があると思われるため、実行できません。
私が見たもう 1 つのオプションは、ページ全体を変更し、ajax を使用してデータをロードするというものでしたが、すべての .php コードを書き直す必要があるため、それを行うのは少し面倒です。
私が間違っていることや、このタスクを達成するためのより効率的な方法があるかどうかについて、誰かが私を指導してくれることを願っています。
1 つの戦略は、Cookie と中間ページを使用することです。すべてのリクエストを特定の Cookie を持たない中間ページにリダイレクトし、そこで Cookie を設定します。
アプリケーションのページを変更せずに、他のサーバーで apache htaccess または同等のものを使用します。
htaccess で Cookie (読み込み済みなど) が存在するかどうかを確認し、存在しない場合は「loading.html」にリダイレクトし、「loading.html」に hasloading=true を設定して、元の URL にリダイレクトします。
HTTP リダイレクトを使用すると期待した結果が得られないため、JavaScript を使用して「loading.html」でリダイレクトすることが非常に重要です。
「loading.html」で読み込み中の画像を表示するには、cookie hasloading=true を設定してから、元の URL にリダイレクトする onload イベントを使用する必要があります。onload では、画像 (読み込み中) にわずかな遅延を発生させます)一部のブラウザでは移動せずにフリーズします:
リーリーCookie の有効期限が切れると、必要に応じて、数日、数時間、または数分間「loading.html」が再読み込みされないようにすることができます。もう 1 つのオプションは、URL ごとに Cookie を設定することです。
いくつかの Web サイトに同様の実装があります。
######編集:######実装ではなく戦略を説明するために、この単純な例では htaccess を使用せず、コンテンツをロードする前にコンテンツ ページで最初のリダイレクトを実行します。 index.htmlとして保存:
リーリーloading.htmlとして保存:
リーリーこの単純な例は、Firefox ではローカル (file:// ...) でも動作しますが、Chrome ではローカルで動作するとは思えません。