このプロジェクトは当面の間保留されています。将来再検討する可能性があり、その場合はここに更新情報を投稿します。
大規模なカテゴリ数を扱うコミュニティを支援するための実験的機能をご紹介します。![]()
過去数ヶ月、Discourse サイトが多数のカテゴリ(それだけでなく)を持つコミュニティにとってより良く動作するように努めてきました。これにより、管理者は皆さんが慣れ親しんだ親しみやすい UX を維持したまま、数千ものカテゴリを作成できるようになります。
これはまだ実験的な機能であり、lazy_loaded_categories_groups サイト設定を変更することで有効にできます。現在はデフォルトで無効になっています。
これはどのように動作しますか?
現在、Discourse コミュニティに移動すると、すべてのカテゴリデータが読み込まれます。これは「イージーローディング」と呼ばれ、カテゴリ数が非常に多いサイトでは理想的ではありません。なぜなら、最初の描画前に大量の情報が転送されるため、全体の読み込み時間が長くなるからです。
新しい方法は「レイジーローディング」と呼ばれ、カテゴリに関する情報の読み込みを本当に必要な時まで延期します(例えば、カテゴリを検索するとき、カテゴリに移動またはリンクするとき、カテゴリに言及されているトピックや投稿を読むときなど)。転送されるデータが減ることで、読み込み時間が短縮され、ユーザーが満足します! ![]()
これは Meta のメンバーであるあなたにとって何を意味しますか?
私たちはこの機能について内部で徹底的にテストしてきましたが、実施した作業の規模を考慮すると、バグを導入するわずかな可能性はあります。カテゴリに関連する不具合にお気づきの場合は、このトピックへの返信または Contribute > Bug トピックの作成によりお知らせください。
これはお住まいのコミュニティやあなたにとって何を意味しますか?
当社がホスティングしている場合でも、セルフホスティングしている場合でも、この機能はデフォルトで無効になっており、目に見える変更はないはずです。
ただし、コミュニティを拡張して多数のカテゴリを持たせたいと考えている場合は、この機能を有効にすることを強く推奨します。
将来的には、この機能をデフォルトで有効にし、最終的にはカテゴリを「イージーロード」するコードを非推奨とし、削除する予定です。
これはおそらくプラグインやテーマの開発者にとって何を意味しますか?
一般的に、プラグインのほとんどでは変更は必要ありません。カテゴリコンポーネントをコアから使用するか、プリロードされたデータ(例えば、ページ読み込み時にすでに可視であるカテゴリのみをクエリする場合。これはすでにプリロードされていることを意味します)を使用している限りです。
まだ読み込まれていないカテゴリの情報を取得しようとした場合、問題が発生する可能性があります。Category.findByIds メソッドは、すでに読み込まれているカテゴリのみを返し続けますが、Category.asyncFindByIds は情報がまだ読み込まれていない場合、サーバー上でルックアップを実行する可能性があります。

















