[PHP] Richiesta consiglio

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao a tutti, sono qui per chiedervi un consiglio su come risolvere un difetto presente nella mia pagina PHP.
Mi spiego brevemente.
Un utente, dopo aver effettuato l'accesso alla sua pagina personale, può visualizzare i dati presenti in una tabella Mysql. La visualizzazione dei dati avviene sotto forma grafica e tabellare (utilizzo la libreria Plotly).
Ora mi trovo in una situazione "particolare": nella tabella dati di un utente ci sono circa 15000 righe (il numero delle righe sono in continuo aumento). Se l'utente vuole visualizzare tutti i dati sia sotto forma grafica che tabellare dovrà attendere anche 3/4 minuti per l'eleborazione dei dati.
Il fatto è questo: io che ho realizzato la pagina PHP so del perchè bisogna aspettare così tanto ma l'utente no...
Secondo voi cosa potrei fare per migliorare la situazione? Avevo pensato di utilizzare una finestra di avviso con un messaggio; Ma come faccio in PHP?
Ciao, grazie mille.
 
Il concetto di visualizzare in modalità sincrona i grafici ed i dati è sbagliata (quando si parla di numeri elevati)...
Sarebbe più facile se si utilizzasse la filosofia a servizi, più comunemente "chiamata ad API" asincrona, in modo da caricare i soli dati elaborati fino a quel momento...
Altra piccola osservazione, i grafici non vengono MAI elaborati a runtime (a meno di software basici), è uno spreco di risorse, e sicuramente lo storing in una tabella MySql non ne facilita il lavoro...
Sarebbe opportuno:
1- Prevedere uno scheduler/worker che elabori i dati in modo automatico (potresti scriverlo con python, java, php, etc...)
2- Prevedere un sistema di memorizzazione documentale per l'elaborato di cui al punto 1 (non indispensabile)
3- Utilizzare un db redis per i dati che verranno caricati dall'utente (non indispensabile)
4- Utilizzare le socket e/o ajax per la comunicazione con il server per recuperare i dati, magari facendo un chunk degli stessi ad un tot prestabilito e costruire la view in modo live...
5- Utilizzare l'approccio "WebApp" sarebbe la soluzione migliore
6- Utilizzare un framework come "Laravel" e/o "CodeIgniter 4" (è abbastanza stabile, sipuò utilizzare) sicuramente facilita e ottimizza il flusso di lavoro....
 

Discussioni simili