La butto lì, poi vedi tu:
Supponi di avere sul tuo server un file di testo chiamato up.txt contenente un numero da 0 a n.
Possiamo distinguere 3 casi:
1)L'utente accede per la prima volta a una pagina
2)L'utente sta già navigando nel sito
3)L'admin ha applicato delle modifiche
Caso 1.
Lo script carica il numerino dal file controlla se lo ha memorizzato in sessione. Se non lo ha lo mette in sessione e carica i dati dal DB riportandoli in sessione.
(Il numerino sarà una sorta di versione dei dati caricati dal DB)
Caso 2.
L'utente visita una pagina successiva alla prima. Legge il solito numerino dal file e se è uguale a quello in sessione prende i dati dalla sessione altrimenti aggiorna il numerino in sessione e ricarica dal DB
Caso 3.
L'admin applica delle modifiche e incrementa il numerino e lo salva nel file. In questo modo alla prossima pagina caricata da qualunque utente il dati vengono ricaricati da DB.
Nel caso specifico del menu uno pseudo codice potrebbe essere
Ovviamente devi scrive il codice che incrementi il numerino nel file quando l'admin effettua delle operazioni sui dati del menu.codice:se(non esiste file up.txt) crea file memorizzandoci 0 num=leggi numerino da up.txt se(esiste sessione[numerino] e sessione[numerino]==num) Carica da Sessione il Menu altrimenti sessione[numerino]=num Carica da DB il menu mettendolo in Sessione
In questo modo puoi mantenere la tua strutture nel DB, pur non interrogando il DB per ricaricare sempre la stessa struttura, che custodirai in sessione. Quando fai delle modifiche i client operativi provvedono a ricaricare la struttura dal DB essendo cambiato il numero di varsione.
![]()

Rispondi quotando