Questo progetto è stato sospeso per ora. Potremmo riprenderlo in futuro e pubblicheremo un aggiornamento qui in tal caso.
Stiamo introducendo una funzionalità sperimentale per aiutare le community con un gran numero di categorie. ![]()
Negli ultimi mesi abbiamo lavorato sodo per rendere i siti Discourse più performanti per le community con molte categorie (e non solo!). Ciò consentirà agli amministratori di creare migliaia di categorie mantenendo l’esperienza utente (UX) amichevole a cui siete abituati.
Questa è ancora una funzionalità sperimentale e può essere abilitata modificando l’impostazione del sito lazy_loaded_categories_groups. Attualmente è disabilitata per impostazione predefinita.
Come funziona?
Al momento, tutti i dati delle categorie vengono caricati quando si naviga in una community di Discourse. Questo è chiamato “eager loading” (caricamento anticipato) e non è l’ideale per i siti con molte categorie perché significa che molte informazioni vengono trasferite prima del primo rendering, il che aumenta il tempo di caricamento complessivo.
Il nuovo metodo è chiamato “lazy loading” (caricamento pigro) e ritarderà il caricamento delle informazioni su una categoria fino a quando non sarà realmente necessario (ad esempio, quando si cerca una categoria, si naviga o si collega a una, si legge un argomento o un post che la menziona, ecc.). Meno dati trasferiti significano tempi di caricamento più rapidi e utenti più felici! ![]()
Cosa significa questo per te, come membro di Meta?
Abbiamo testato approfonditamente questa funzionalità internamente, ma data l’entità del lavoro svolto, c’è una leggera possibilità di introdurre bug. Se noti malfunzionamenti relativi alle categorie, faccelo sapere rispondendo a questo argomento o aprendo un argomento in Bug.
Cosa significa questo per te o per la tua community?
Sia che tu sia ospitato da noi o che tu sia self-hosted, questa funzionalità è disabilitata per impostazione predefinita e non dovrebbero esserci modifiche visibili.
Tuttavia, se stai pensando di espandere la tua community per avere molte categorie, ti incoraggiamo vivamente ad abilitare questa funzionalità.
In futuro, la abiliteremo per impostazione predefinita e alla fine deprecieremo e rimuoveremo il codice che esegue l’“eager loading” delle categorie.
Cosa significa questo per gli sviluppatori di plugin e temi?
In generale, dovrebbero esserci poche o nessuna modifica necessaria per la maggior parte dei plugin, purché utilizzino i componenti delle categorie dal core o i dati precaricati (ad esempio, interrogando solo le categorie che sono già visibili durante il caricamento della pagina, poiché ciò significa che sono già state precaricate).
Alcuni problemi potrebbero apparire quando si tenta di utilizzare informazioni per categorie che non sono ancora state caricate. Il metodo Category.findByIds continuerà a restituire solo le categorie che sono già state caricate, mentre Category.asyncFindByIds potrebbe eseguire una ricerca sul server se le informazioni non sono ancora state caricate.

















