Quote Originariamente inviata da jip77 Visualizza il messaggio
Purtroppo non posso fare un database, però credo si possa fare la stessa cosa con un array dove ci sono tutti i minuti della giornata e dal quale andrò poi ad eliminare i minuti dei vari appuntamenti.

Una cosa che non ho specificato è che devo fare questa cosa per ogni operatore, quindi ho la necessità di ricavare questi spazi liberi per ogni operatore, ecco perché sto cercando di complicarmi il meno possibile la vita.
Puoi sempre valutare un database NEL browser....
Per la tua necessità potrebbe andare bene.
Se e ripeto SE sono informazioni specifiche per l'utente e solo l'utente può accedervi, ovvero io, Mario, creo gli appuntamenti e Giuseppe non deve sapere quando Mario è libero, allora puoi usare un IndexDB: https://developer.mozilla.org/en-US/...sing_IndexedDB

Se invece Giuseppe deve poter sapere quando Mario è libero, POTRESTI usare un IndexDB, mettendo un temporizzatore che ogni tot va a "ricostruire" il db locale prendendo i dati dal "db" del server oppure con una funzione di "check_consistency" che chiami ogni volta che ci si muove nell'applicazione (si invia un form, si clicca un pulsante, si cambia pagina ecc ecc): se il "check" dice "ho un aggiornamento", allora eseguirai una serie di update/delete/insert nel db locale in accordo con le nuove informazioni del db remoto.

Il tuo db remoto può benissimo essere un file come dici tu, semplicemente avrai un ulteriore file di supporto dove memorizzi "c'è un cambiamento", "questo è il cambiamento" e "questi clienti devono ancora aggiornare il db locale". Qualcosa di questo tipo
codice:
db:appuntamenti, name:mario, age:42, update:{mario:luigi}
dove db:appuntamenti indica qual'è il db locale da aggiornare, name:mario indica la chiave univoca del dato che andrà aggiornato, age:42 indica che va aggiornato il valore del campo "age" con il nuovo valore 42, update:{mario:luigi} indica che mario e luigi devono ancora aggiornare questo dato nel loro db locale.

Sembra complesso ma se leggi un po' di documentazione e fai qualche esperimento semplice vedrai che forse può fare al caso tuo