Este projeto foi suspenso por enquanto. Podemos revisitá-lo no futuro e publicaremos uma atualização aqui, se for o caso.
Estamos introduzindo um recurso experimental para ajudar comunidades com um grande número de categorias. ![]()
Nos últimos meses, trabalhamos arduamente para fazer com que os sites do Discourse funcionassem melhor para comunidades com muitas categorias (e não apenas isso!). Isso permitirá que os administradores criem milhares de categorias, mantendo a experiência do usuário amigável com a qual você está familiarizado.
Este ainda é um recurso experimental e pode ser ativado ajustando a configuração do site lazy_loaded_categories_groups. Atualmente, ele está desativado por padrão.
Como isso funciona?
No momento, todos os dados das categorias são carregados quando você navega para uma comunidade do Discourse. Isso é chamado de “carregamento ansioso” (eager loading) e não é ideal para sites com muitas categorias, pois significa que muitas informações são transferidas antes da primeira renderização, o que aumenta o tempo total de carregamento.
O novo método é chamado de “carregamento preguiçoso” (lazy loading) e adiará o carregamento de informações sobre uma categoria até que seja realmente necessário (por exemplo, ao pesquisar uma categoria, navegar ou vincular uma, ler um tópico ou postagem que a mencione, etc.). Menos dados transferidos significam tempo de carregamento mais rápido e usuários mais felizes! ![]()
O que isso significa para você, como membro do Meta?
Testamos este recurso extensivamente internamente, mas dada a extensão do trabalho realizado, há uma pequena chance de introduzir bugs. Se você notar algo com mau funcionamento relacionado a categorias, informe-nos em uma resposta a este tópico ou abra um tópico em Bug.
O que isso significa para você ou sua comunidade?
Seja você hospedado por nós ou auto-hospedado, este recurso está desativado por padrão e não deve haver alterações visíveis.
No entanto, se você está pensando em expandir sua comunidade para ter muitas categorias, encorajamos fortemente que você ative este recurso.
No futuro, nós o ativaremos por padrão e, eventualmente, desativaremos e removeremos o código que faz o carregamento ansioso (eager loads) das categorias.
O que isso significa para desenvolvedores de plugins e temas?
Em geral, deve haver pouca ou nenhuma alteração necessária para a maioria dos plugins, desde que eles usem os componentes de categoria do core ou dados pré-carregados (por exemplo, consultando apenas as categorias que já estão visíveis ao carregar a página, pois isso significa que elas já foram pré-carregadas).
Alguns problemas podem surgir ao tentar usar informações de categorias que ainda não foram carregadas. O método Category.findByIds continuará a retornar apenas as categorias que já foram carregadas, enquanto Category.asyncFindByIds pode realizar uma consulta no servidor se a informação ainda não tiver sido carregada.

















