Come fornire una buona esperienza utente con un'app più lenta

2

Sto lavorando su un'applicazione incorporata che ha un server Web come GUI. Il server web supporta ciò che ti aspetteresti e sto usando javascript per richiedere i dati dall'applicazione e fornirli all'utente.

L'utente può interagire con l'hardware modificando i relè fisici su di esso. Questo è tutto visualizzato e controllato da una GUI centrale. La GUI si aggiorna ogni 5 secondi utilizzando AJAX.

Il problema è che l'accensione e lo spegnimento di questi relè può essere quasi istantaneo o richiedere fino a 4 secondi (dipende davvero dall'impegno del sistema). Pertanto, non posso semplicemente inviare un comando "spegni questo relè" e attendo che il prossimo aggiornamento contenga le informazioni corrette (potrebbe non essere ancora spento nel mondo reale). Per rimediare a questo, quando invio un comando, interrompo l'intervallo di aggiornamento, spengo visivamente il relè e attendo un massimo di 4 secondi. C'è ancora un problema, tuttavia, che se l'utente ha attivato questo comando mentre la GUI si stava aggiornando, il controllo potrebbe riaccendersi immediatamente, mettere in pausa per 4 secondi, quindi aggiornare correttamente.

Ciò si traduce in un UX davvero brutto. A questo punto, l'unica cosa che posso pensare è avere quella parte del blocco della GUI stessa (con qualche tipo di messaggio di caricamento ...). È il mio miglior approccio qui?

    
posta BarryBones41 08.07.2015 - 17:39
fonte

1 risposta

2

L'approccio di base sarebbe quello di consentire alle tue modifiche locali di ignorare gli aggiornamenti ricevuti per un certo periodo, magari con qualche indicazione visiva che le tue modifiche sono in sospeso. Qualcosa del genere:

if (locally commanded state != updated state and time since command < 10 seconds)
   show locally commanded state with pending indication
else
   show updated state
    
risposta data 08.07.2015 - 19:16
fonte

Leggi altre domande sui tag