これらのPNGがBLOBとしてデータベースに保存されている場合-質問からは明らかではありません-そうしないでください。PHP を介して DB から画像を提供することは、Web サーバーがファイルシステムから直接画像を提供するほど効率的ではありません。画像が特定のレコードに関連付けられている場合は、行 ID に基づいて PNG に名前を付けるだけで、それらの画像を格納する専用のディレクトリで見つけることができます。PHP コードは、ディスク上の PNG ファイルを指す URL を生成するだけなので、Web サーバーはそれらを静的に送信できます。
同じページ内に画像をプリロードしても、何も得られないと思います。どちらかといえば、ブラウザーが同時に取得できるリソースの数は固定数 (通常は 2 ~ 4) に限られるため、全体的なページの読み込み時間が明らかに遅くなる可能性があります。ページの上部に画像をロードする<body>
ということは、「スクロールせずに見える範囲」のページの上部に、いくつかの HTTP 接続スロットが解放されるのを待たなければならない他のものがあることを意味します。画像が自然な順序で読み込まれるようにすることをお勧めします。
プリロードは、次の 2 つの状況で意味があります。
いずれにせよ、 の一番下でプリロードを行うと、<body>
他のすべてが最初にロードされます。
これら 2 つの問題に対処したら、サイトでYSlowを実行します。Firebugのプラグインとして始まり、Firefox のプラグインになりましたが、IE を除くすべての主要なブラウザーに移植されました。
YSlow の優れた点は、拡張機能がアクティブなときにページを読み込むだけで、一般的なスローダウンを自動的に検出することです。その後、ページの明確な評価が得られるため、最適化が「完了」したかどうかを判断できます。Aを下回っている場合は、まだ完了していません。:) Web サーバーの既定の構成は、問題の発生を避けるために保守的なため、サイトの評価がDまたはそれ以下であることは珍しくありません。YSlow の警告を修正するのは一般的に非常に簡単ですが、キャッシングやその他の問題を作成しないように注意する必要があります。これが、デフォルトのサーバー構成がこれらのことを行わない理由です。
別の回答では、Google PageSpeedを推奨していました。Chrome と Firefox のプラグイン、サーバー側の Apache モジュール、Google がホストするサービスとして利用できます。YSlowとの比較はわかりませんが、面白そうです。
また、ブラウザーのデバッガーを使用して、リソースの読み込み時間のウォーターフォール グラフを取得することも検討してください。
Firebug では、Net タブでこれを取得します。
Safari では、通常は [設定] で無効になっている [開発] メニューからアクセスできます。必要に応じてオンにしてから、Develop > Start Timeline Recording と言います。これにより、Network Requests インストゥルメントが表示されます。また、[開発] > [Web インスペクターを表示] からアクセスすることもできます。
Chrome で、[View] > [Developer] > [Developer Tools] と言って、[Network] タブに移動します。
IE では、[ツール] > [開発者ツール] > [プロファイラー] を使用して、これの非常に弱い形式を使用できます。ウォーターフォール グラフではなく数値の表を提供するだけなので、情報はそこにありますが、長いバーを視覚的にスキャンして最も遅いリソースを見つけることはできません。