In che modo le code di lavoro restituiscono risultati all'interfaccia utente?

0

Sto lavorando su un'app che eseguirà query e restituirà i risultati all'interfaccia utente. Tuttavia, queste query possono richiedere molto tempo per terminare quindi non dovrei aspettare il risultato. Per quanto ne so, in questo caso le persone usano le code delle attività.

La mia domanda è quando la coda delle attività restituisce il risultato, come posso inviare il risultato all'interfaccia utente poiché la richiesta http è già terminata da quel punto?

EDIT: userò React e NodeJS

    
posta Cemre 07.12.2018 - 16:26
fonte

2 risposte

0

AJAX sarà tuo amico qui.

Devi portare l'utente a una pagina che visualizzerà i risultati della query, ma imposta un meccanismo di polling che chiede al server se l'attività è ancora completata.

Nel frattempo, la query è in esecuzione in background. Una volta che i risultati tornano, generare il risultato, come oggetti memorizzati nella sessione per l'utente, o serializzarli come JSON, XML o HTML. Invece della sessione dell'utente, potrebbe essere solo una cache generica la cui chiave viene generata quando l'utente invia la query (utilizzando forse un GUID?).

Il browser esegue il ping del server (con l'Id della query) finché il server non rileva che la chiave cache esiste e restituisce i risultati al browser.

    
risposta data 07.12.2018 - 16:33
fonte
0

Considera l'utilizzo di una progettazione reattiva per l'interfaccia utente, se non ne hai già uno.

Quindi, come ha detto Greg, puoi applicare le tecniche AJAX per aggiornare in modo asincrono l'interfaccia utente quando la query è completa e i risultati sono pronti. Se, ad esempio, stai usando ReactJS , forniscono un esempio relativamente diretto del meccanismo /docs/faq-ajax.html">here. Quella pagina inoltre nomina e collega tre librerie per AJAX che è possibile utilizzare: Axios, jQuery AJAX e window.fetch.

Senza sapere di più su quali librerie di framework hai scelto di utilizzare nel tuo progetto, è impossibile dare consigli più specifici.

    
risposta data 07.12.2018 - 16:55
fonte

Leggi altre domande sui tag