このプロジェクトは現在一時中断されています。将来的に再開する可能性があり、その場合はこちらで最新情報をお知らせします。
カテゴリー数の多いコミュニティを支援するための実験的な機能を導入します。![]()
この数ヶ月間、私たちはDiscourseサイトが多数のカテゴリーを持つコミュニティ(それだけではありません!)でより良く機能するように、懸命に取り組んできました。これにより、管理者は使い慣れたフレンドリーなUXを維持しながら、数千のカテゴリーを作成できるようになります。
これはまだ実験的な機能であり、lazy_loaded_categories_groups サイト設定を変更することで有効にできます。現在、デフォルトでは無効になっています。
仕組みは?
現在、Discourseコミュニティにアクセスすると、すべてのカテゴリーデータがロードされます。これは「 eager loading(積極的ロード)」と呼ばれ、多数のカテゴリーを持つサイトにとっては理想的ではありません。なぜなら、最初のレンダリング前に大量の情報が転送されるため、全体のロード時間が長くなるからです。
新しい方法は「lazy loading(遅延ロード)」と呼ばれ、カテゴリーに関する情報のロードを、本当に必要になるまで遅らせます(例:カテゴリーの検索、移動、リンク、トピックや投稿の閲覧時など)。転送されるデータが少なくなれば、ロード時間が短縮され、ユーザーもハッピーになります!![]()
メタのメンバーであるあなたにとって、これは何を意味しますか?
私たちはこの機能を社内で徹底的にテストしてきましたが、実施した作業の範囲を考えると、バグが混入している可能性がわずかにあります。カテゴリーに関連して何か不具合を見つけた場合は、このトピックへの返信としてお知らせいただくか、Bug トピックを作成してください。
あなたやあなたのコミュニティにとって、これは何を意味しますか?
あなたがホストされているか、セルフホストされているかに関わらず、この機能はデフォルトで無効になっており、目に見える変更はないはずです。
しかし、コミュニティを多くのカテゴリーを持つように拡張することを検討している場合は、この機能を有効にすることを強くお勧めします。
将来的には、これをデフォルトで有効にし、カテゴリーを「eager load」するコードを最終的に非推奨にして削除する予定です。
プラグインおよびテーマ開発者にとって、これは何を意味しますか?
一般的に、ほとんどのプラグインについては、コアのカテゴリーコンポーネントを使用しているか、プリロードされたデータを使用している限り(例:ページロード時にすでに表示されているカテゴリーのみをクエリする、これはすでにプリロードされていることを意味します)、必要な変更はほとんど、あるいはまったくないはずです。
まだロードされていないカテゴリーの情報を利用しようとすると、いくつかの問題が発生する可能性があります。Category.findByIds メソッドは、すでにロードされているカテゴリーのみを返し続けますが、情報がまだロードされていない場合は、Category.asyncFindByIds がサーバーに対してルックアップを実行する可能性があります。

















