Domanda

Sto cercando modi per migliorare una pagina Web che avvia un'attività lato server di lunga durata (>2 minuti).La versione attuale della pagina si limita a sincronizzarsi per l'intera durata dell'attività, il che può essere molto frustrante per l'utente.

Ho già alcune idee su come potrei migliorare l'esperienza dell'utente, ma tutte implicherebbero in una certa misura l'uso di AJAX.A causa delle precedenti esperienze che ho avuto su questo progetto, so che non tutti gli utenti hanno JavaScript abilitato o disponibile.

Supponendo che il processo lato server sia già stato ottimizzato il più possibile, cos'altro potrei fare per migliorare l'esperienza di Tutto utenti il ​​più possibile?

È stato utile?

Soluzione

Spostare fuori banda il processo del server con esecuzione prolungata.

Quando gli utenti avviano l'attività, l'applicazione può scrivere un messaggio su una coda di qualche tipo;questo è in genere estremamente veloce, quindi gli utenti riprendono rapidamente il controllo.Una volta messo in coda il messaggio, un altro processo specializzato (un servizio, un'attività pianificata, un lavoro cron, ecc.) lo preleva ed esegue l'attività appropriata alla prima occasione.

Per gli utenti con Javascript abilitato, è possibile impostare un timer per verificare lo stato dell'attività tramite AJAX e avvisarli quando l'attività è terminata.

Puoi tenere informati i tuoi utenti non JavaScript visualizzando le loro attività in sospeso e completate in un punto comune e visibile sulle tue pagine.Naturalmente, devono continuare a navigare per trarne vantaggio, quindi è necessario anche chiarire che gli utenti dovrebbero occasionalmente aggiornare la pagina se stanno aspettando il completamento di un'attività.

Altri suggerimenti

  • creare una tabella nel database (o un oggetto in memoria)
  • l'attività a lunga esecuzione aggiornerà l'avanzamento in questa tabella (oggetto)
  • la pagina web visualizzerà i dati da questa tabella (o oggetto).come aggiornare la pagina: a te la scelta.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top