Zjistěte, jak správně nakonfigurovat seznamy pomocí generátoru CRUD, abyste se vyhnuli dlouhému načítání.
Díky generátoru CRUD PHP by doba načítání seznamů READ v panelu správce měla být obecně rychlá a neměla by přesáhnout několik sekund. Abnormálně dlouhá doba načítání je způsobena buď konfigurací vašich filtrů, nebo počtem dotazů potřebných k zobrazení dat.
V obou případech lze řešení snadno implementovat pomocí generátoru CRUD. Zde je uveden postup, jak zkrátit dobu načítání.
Když do seznamu READ přidáte filtr záznamů, program odešle dotaz SQL a načte všechny záznamy z databáze. Poté vygeneruje výběrové
pole, které bude obsahovat tolik možností, kolik máte záznamů.
To je ideální pro tabulky, které obsahují několik desítek nebo dokonce stovek záznamů, ale pokud jich tabulka obsahuje tisíce, výrazně to prodlouží dobu načítání stránky.
V tomto případě je třeba při vytváření filtru z generátoru CRUD povolit načítání Ajaxem.
Při povoleném načítání Ajax se na stránce načte jednoduché vstupní
pole připojené k zásuvnému modulu automatického dokončování
. Zásuvný modul bude na požádání načítat záznamy pro automatické doplňování. Tímto způsobem se vyhnete načítání těžkých a zbytečných dat při načítání hlavní stránky.
Po načtení seznamu záznamů z databáze program provede následující dotazy:
Pokud jste povolili externí vztahy, program provede také následující dotazy:
Pokud máte například tabulku filmů propojenou s tabulkou herců a tabulkou kategorií a máte povoleno zobrazování jmen herců a kategorií v seznamu filmů, program provede pro každý film dva dotazy, aby získal jména herců a kategorie.
Pokud na jedné stránce zobrazíte 20 filmů, dostanete toto:
Celkem: 42 dotazů (+ filtry)
Obvykle ani při relativně velkém počtu dotazů to nebude problém, protože tyto dotazy vracejí pouze omezený počet záznamů. Jsou proto efektivní a rychlé. Pokud přesto dochází k nadměrně dlouhému načítání, můžete zobrazení některých externích vztahů v hlavním seznamu zakázat a zobrazit je na jiné stránce. Můžete také omezit počet záznamů zobrazených na jedné stránce.
To se netýká PHPCG, ale přímo struktury vaší databáze. Přidejte index ke každému poli, které budete pravidelně používat v dotazech. Stroj MySQL je s indexovanými poli rychlejší a efektivnější.
Indexování polí: