(jp) =
静的サイト ジェネレーターとキャッシングの違いは何ですか?
簡単に言えば、両者の間に技術的な利点はありません。 しかし、両者の背後にある考え方はまったく異なります。
このままにしておくには、このトピックは面白すぎると思います。 キャッシングについて話しましょう。
長年にわたり、私たちはウェブサイトの構築を支援するシステムを作成してきました。 これらのシステムの多くは、「動的 Web サイト」の考え方に基づいて構築されています。 HTML や CSS ページを書く代わりに; データ ソース (たとえば、MySQL データベースなど) から情報をロードできるシステムを設計しました。 そのデータをいわゆる「テンプレート」に解析します (これらは HTML ページの設計図のようなものです)。 最後に、レンダリングされた HTML をクライアントに送信します。 もちろん、Web サイトには HTML と CSS だけではありませんが、それは別の機会に取り上げます。
Web サイトに多くの訪問者がいて、それぞれが同じページにアクセスしているとします。 訪問ごとにそのページをレンダリングすると、ページを 1 回レンダリングし、その出力を要求するすべての人に送信するよりも多くのサーバー リソースが必要になります。 それがキャッシュされたページです。 アプリケーションの他の部分をキャッシュすることもできます。 たとえば、常に同じデータベース クエリを実行するのではなく、そのクエリの結果をキャッシュして、何度も再利用します。
明らかに、キャッシングは私が説明した以上のものです。 Web でのキャッシングの一般的な定義を試みると、次のようになります。
リソースを集中的に使用する操作が完了したら、結果を覚えておいてください。 次に同じ操作が要求されたときに、その操作を再度実行する代わりに結果を返すことができます。
キャッシングは非常に強力なツールです。 包み込む システムのパフォーマンスを大幅に向上させます。
スティッチャー、およびすべての静的サイト ジェネレーターは反対です。 これらのツールは 包み込む システム。 むしろ、彼らの核心 は HTML出力。 開発者がウェブサイトをスムーズに構築するために必要な他のすべてのものは、 差し込む そのコアに。 マイナス面は何ですか? 訪問者に表示される前に、Web サイトの一部を再レンダリングする必要があります。 面倒な作業です。 幸いなことに、コンピューターは同じ退屈なタスクを何度も実行するのが得意です。 適切なツールが利用できる場合、Web サイトの再レンダリングはそれほど面倒ではありません。
静的 Web サイトのもう 1 つの「欠点」は? 開発者についてもう少し考える必要があります。 しかし、いつそれが悪いことになるのでしょうか?
したがって、静的な Web サイトには欠点があります。 しかし、その HTML レンダリング コアに「プラグイン」できるものを見てみましょう。
-
画像の最適化: 開発者がレスポンシブ画像の仕様を最大限に活用できるようにします。
- SASS のプリコンパイル: 私はフロントエンドの開発者ではありませんが、これらの人はそれが必須だと言っています。
- ページネーション、概要、詳細ページ。
- MarkDown、YAML、および JSON をテンプレートに解析し、動的システムのようにそれらのテンプレートを使用します。
- JavaScript と CSS の縮小: Web サイトのパフォーマンスにとって非常に重要です。
- データセットの並べ替えやフィルタリングなど。
ただし、Stitcher にはまだいくつかの重要な機能がありません。
- フォームのサポート: ただし、Stitcher のコアにはフォーム処理が含まれていません。 それは別のモジュールになります。
- データ セットのフロントエンド フィルタリング: 技術的には可能ですが、フィルターの量によってはパフォーマンスが大幅に低下する可能性があります。 私は将来的にそれに取り組んでいきます。
- コンテンツ管理: これも可能ですが、Stitcher のコア内からではありません。 スティッチャー プロジェクトを変更するクライアントとして機能する別のモジュールになります。
はっきりさせておきますが、静的サイト ジェネレーターがすべての Web サイトにとって最適なソリューションだとは思いません。 しかし、動的システムやキャッシングよりも静的サイト ジェネレーターを使用することでメリットが得られるケースはたくさんあります。 私は多くのキャッシュシステムを傷の上に絆創膏を貼るようなものだと考えていますが、そうではありません。 ステッチ 傷(しゃれた意図)。 キャッシュのクリアは、ソフトウェア開発の最も難しい部分の 1 つであることを忘れないでください。 しかし、現実的である必要もあります。静的 Web サイトのアプローチは、主に小規模から中規模の Web サイトを対象としており、複雑な Web アプリケーションは対象としていません。
試してみたい場合は、必ず静的サイト ジェネレーターをチェックしてください。たくさんあります。