Impari a configurare correttamente le sue liste con il Generatore CRUD per evitare lunghi tempi di caricamento.
Con il Generatore CRUD PHP, il tempo di caricamento del suo pannello di amministrazione Liste READ dovrebbe essere generalmente veloce e non superare i pochi secondi al massimo. Tempi di caricamento anormalmente lunghi sono dovuti alla configurazione dei filtri o al numero di query necessarie per visualizzare i dati.
In entrambi i casi, la soluzione è semplice da implementare utilizzando il Generatore CRUD. Ecco come procedere per ridurre i tempi di caricamento.
Quando aggiunge un filtro record alla sua lista READ, il programma invia la query SQL e recupera tutti i record dal database. Quindi genera un campo di selezione
che includerà tante opzioni quanti sono i record.
Questo è perfetto per una tabella che contiene poche decine o addirittura centinaia di record, ma se la sua tabella ne contiene migliaia, aumenterà significativamente il tempo di caricamento della pagina.
In questo caso, deve abilitare il caricamento Ajax quando crea il suo filtro dal generatore CRUD.
Con il caricamento Ajax abilitato, la pagina caricherà un semplice campo di input
collegato a un plugin di completamento automatico
. Il plugin recupererà i record su richiesta per il completamento automatico. In questo modo, evita di caricare dati pesanti e non necessari durante il caricamento della pagina principale.
Quando carica un elenco di record dal suo database, il programma esegue le seguenti query:
Se ha abilitato le relazioni esterne, il programma eseguirà anche le seguenti query:
Per esempio, se ha una tabella di film collegata a una tabella di attori e a una tabella di categorie, e ha abilitato la visualizzazione dei nomi degli attori e delle categorie nell'elenco dei film, il programma eseguirà due query per ogni film per recuperare i nomi degli attori e le categorie.
Se visualizza 20 film per pagina, si ottiene questo:
Totale: 42 query (+ filtri)
Di solito, anche se c'è un numero relativamente elevato di query, non sarà un problema, perché queste query restituiscono solo un numero limitato di record. Sono quindi efficienti e veloci. Se tuttavia i tempi di caricamento sono eccessivamente lunghi, può disabilitare la visualizzazione di alcune relazioni esterne nell'elenco principale e visualizzarle in un'altra pagina. Può anche limitare il numero di record visualizzati per pagina.
Questo non riguarda PHPCG, ma direttamente la struttura del suo database. Aggiunga un indice a ogni campo che verrà utilizzato regolarmente nelle sue query. Il motore MySQL è più veloce ed efficiente con i campi indicizzati.
Per indicizzare i suoi campi: