La generazione dei menù può comportare un carico significativo e, se i menù sono “voluminosi”, anche tempi di elaborazione che possono essere “notati” a vista d'occhio.
Suggerisco fortemente di ricorrere a una “cache” del codice HTML+JS generato dal sistema di menù e rigenerare tale cache solo quando i dati cambiano.
Tale cache può essere realizzata mediante opportuni file o usando un database. Ciascuna delle due scelte presenta vantaggi e svantaggi rispetto all'altra... ne parlo solo se mi promettete di non sconfinare nella classica “flamewar” tra i sostenitori del file system e i sostenitori del data base ;-)