Una webapp richiede una funzione di monitoraggio della connessione?

0

Sviluppo un client utilizzando Flex e ActionScript che viene eseguito nel browser e comunica con il nostro server back-end. C'è stata preoccupazione che l'applicazione "abbia bisogno" di avere un indicatore grafico per mostrare se il client ha una connessione al server o meno.

Parte del problema di questo requisito è che proviene da una prospettiva di alto livello che, poiché l'interfaccia appare "interrotta" (ovvero non si aggiorna correttamente). Ho un'idea di dove si trova il problema, ma ciò non significa che l'errore sia nell'interfaccia.

Credo che una funzione di monitoraggio della connessione non sia necessaria perché:

  1. Gli utenti non saranno in grado di fare lo squat. La nostra base di utenti è in gran parte non tecnica.
  2. Flex genera eventi di errore HTTP ma non specifica cosa è successo. Non posso dire quale sia il problema reale che potrebbe essere:
    • L'utente non ha alcuna connessione di rete.
    • Il codice del server delle applicazioni è in qualche modo danneggiato.
    • Il server stesso è incasinato (ad esempio "Oops, ho rotto la configurazione di Apache").
    • Il carico del server è troppo alto e non risponde.
    • C'è un altro problema (ad es. rete o hardware) al di fuori del mio controllo o degli utenti.

Come posso convincere che questa funzione non è utile da sviluppare? Se è qualcosa che vale la pena di mantenere, quali sono le alternative per mostrare un "stato di rete" o un problema di connessione al server nel client? Preferisco passare il tempo a scavare alla radice del problema e impedire che accada piuttosto che creare una "funzione" aggiuntiva che non risolva nulla.

    
posta Matt Chan 09.12.2011 - 18:13
fonte

3 risposte

2

Dopo aver sviluppato questa funzione per un'app AIR (utilizzando URLMonitor ) Penso che sia una caratteristica utile da aggiungere, anche se posso vedere da dove vieni.

Quello che abbiamo fatto per il nostro monitor di connessione è creare uno script sul server che l'app client possa eseguire il ping per una risposta a un determinato intervallo (ad esempio una volta ogni 10 secondi). Sulla base di tale risposta, possiamo dire che il nostro server è disponibile o non disponibile e visualizzarlo tramite una piccola icona nella barra di stato dell'app. Il server che non è disponibile è in genere il risultato di qualche modifica sul server che interrompe qualcosa o l'utente non è connesso a Internet. Questo è utile per noi e per l'utente in un paio di modi.

Innanzitutto, se il server è rotto o sottoposto a un carico pesante e non risponde, possiamo evitare di colpirlo con ancora più richieste. Poiché l'app client tiene traccia del fatto che il server sia disponibile o meno prima di inviare richieste, possiamo fare qualcosa del tipo:

if (serverIsAvailable)
{
   sendRequest();
}
else
{
   showUnAvailableMessage();
}

In secondo luogo, forniamo un'esperienza utente migliore. Piuttosto che l'app del client che si rompe o si blocca perché non è possibile ottenere una risposta a una richiesta, possiamo generare un messaggio di errore lungo le linee di "Spiacenti, questa operazione non può essere completata perché non siamo riusciti a contattare il server". Come ulteriore vantaggio, abbiamo riscontrato che quando gli utenti contattano il supporto per questo problema, rispondono "Ho ricevuto questo messaggio che il server non è disponibile", il che ci aiuta a individuare più rapidamente i problemi.

Se l'obiettivo è quello di evitare un'esperienza utente negativa, non dovresti preoccuparti troppo di perché il server non è disponibile, solo che è non disponibile.

Per rispondere alla tua domanda più direttamente, sì, penso che questa sia una caratteristica utile da aggiungere. Interrompere l'applicazione per qualche motivo sconosciuto e non visualizzare il messaggio di errore più utile possibile per l'utente è un'esperienza negativa. Sono d'accordo con te sul fatto che l'obiettivo dovrebbe essere quello di prevenire gli errori in primo luogo, ma gli errori si verificheranno indipendentemente da ciò che fai (specialmente quando l'applicazione richiede una connessione internet) e dovresti sempre gestirli con garbo.

Per quanto riguarda la visualizzazione di questo per l'utente, cerchiamo di tenerlo fuori strada. In ogni momento c'è un'icona nella barra di stato dell'applicazione che indica lo stato. L'unica volta in cui mostriamo qualsiasi tipo di finestra di dialogo relativa allo stato della connessione del server è quando l'utente avvia un'azione che richiede una connessione al server e il server non è al momento disponibile.

    
risposta data 09.12.2011 - 20:33
fonte
3

Non è possibile mostrare lo stato della rete di una connessione http perché non è una connessione stateful. nella migliore delle ipotesi, puoi avere un metodo ajax per eseguire il ping su un sito in alto tempo come Google e dire che hanno una connessione Internet attiva, il che non è molto utile.

    
risposta data 09.12.2011 - 19:13
fonte
2

Gmail ha un indicatore se la tua connessione di rete è instabile.

Quali sono le conseguenze della perdita della connessione al server? Gli utenti possono perdere il lavoro?

Quando provo a controllare qualcosa nel controllo di versione, ci sono molte cose che possono andare storte, alcune delle quali potrebbero non avere alcuna influenza sul controllo della versione, ma io mi aspetto assolutamente di dirmi se c'è un problema.

    
risposta data 09.12.2011 - 20:32
fonte

Leggi altre domande sui tag