最近この知識を知ったので、情報を探してまとめてみました
http ヘッダーが導入された場合。このヘッダーは、エンティティがチャンク エンコーディングを使用して送信されることを示します。チャンク エンコーディングでは、送信のためにエンティティをチャンクに分割でき、チャンク エンコーディング内の各コンテンツは長さを自己識別します。これにより、Web 開発者は、複数のデータが必要で、複数のデータが返されるのが遅い場合に手がかりが得られます。処理後に 1 つの部分を返すことができるため、ブラウザーはできるだけ早く HTML を受信して最初にレンダリングできます。
Web ページを 1 つずつ送信できることがわかったので、Web ページを変更し、必要なデータをまとめて取得し、待たずにまとめてレンダリングできます。テンプレートも自然に処理する必要があります。サーバーはテンプレートを取得して一緒にレンダリングできます
最終的に、合計処理時間は変わらないことがわかりますが、セグメント化された出力 Web ページを使用すると、HTML の一部をできるだけ早くクライアントにレンダリングできるため、ユーザーは到着した部分を使用できるようになります。初め。一方で、ページへのフィードバックを早期に行うことで、待ち時間中のユーザーの不安を軽減することもできます。
要約すると、この最適化方法を使用すると、Web ページのレンダリング速度を高速化できます。
1. ページのバックエンド処理に時間がかかる場合は、セグメント化された送信を使用してみてください。パーツをレンダリングしてから、そのパーツをクライアントに送信できます。合計時間は同じですが、ブラウザはすべてを送信しているため、完了するまで待機状態はありません。できるだけ早くレンダリングして、ユーザーにフィードバックを提供できます。
2. バックエンドがレンダリングされたデータを処理するとき、上の部分は速く、下の部分は遅くなります (上記の速い部分を最初にレンダリングすることもできます)
最も遅い部分を一番下に置いて、それを渡します。そこで、js バックフィルを使用するという読み込みのアイデアがあり、バックエンドは最初に高速なテンプレートをレンダリングし、次に低速なテンプレートをレンダリングできます。ページ上のすべてのブロックを空にして、それらを並行してレンダリングできます。より速い人が最初にバックフィル JS をレンダリングします。このようにして、並列かつ先着順のレンダリングを実現できます。
1 バックエンドのデータ処理が遅く、ページがブロックされています。最も遅い部分は Web ページの最後ではありません。 (最も遅い部分をバックフィルに変えることができます)
2. 並行して処理する必要があるデータがバックエンドに複数ある場合 (どの部分が最初に返されるかわからないため、最初にシェルフをレンダリングします。並列リクエストの場合、最初に返されたデータがフラッシュされ、最初に埋め戻されます)
以上がWebページにおける分割送信とレンダリングの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。