it-swarm-eu.dev

Come renderlo ovvio quando si filtra per tempo

Ho un'app semplice che è abbastanza specifica per il mio lavoro, ma in generale consente agli utenti di eseguire query sui dati per un determinato "ticket" impostando alcuni parametri utilizzando caselle combinate/campi di testo, quindi premere un pulsante Invia che recupera i risultati da un database e li visualizza in una griglia.

I dati sono sensibili al tempo e sono disposti in ordine di data con i dati più recenti in alto. Una caratteristica dell'app è quella di "ingrandire" un intervallo di tempo specifico all'interno dei dati, quindi ho creato 2 controlli di selezione del tempo personalizzati per l'ora di inizio/ora di fine che, quando modificati, filtrano dinamicamente le righe nel griglia, in modo che vengano visualizzati solo i dati all'interno della finestra temporale.

Ho quindi pensato che sarebbe stato utile incorporare i tempi di inizio/fine della porzione di tempo nella query del database reale, in modo che la query restituisse solo i dati all'interno della fascia di tempo, poiché ciò migliorerebbe i tempi di query e il caricamento drasticamente, ma ciò sta causando problemi di usabilità, poiché la finestra temporale deve essere aggiornata o reimpostata ogni volta che l'utente desidera aggiornare i dati o eseguire una query per un ticket diverso, altrimenti il ​​filtro verrebbe comunque applicato.

L'opzione facile è quella di rimuovere del tutto la finestra temporale dalla query e sostenere i grandi tempi di caricamento su ogni singolo aggiornamento dei dati per un determinato ticket.

Ma mi chiedevo se qualcuno avesse riscontrato un problema simile o se qualcuno avesse qualche idea per mantenere il filtro timeslice nella query, ma rendendolo ovvio quando deve essere aggiornato/ripristinato, ecc.

AGGIORNAMENTO: Bit in più sullo sfondo: i dati su questi 'ticket' vengono raccolti in tempo reale, quindi, una volta che l'utente fa una query iniziale al momento T, è molto probabile che vogliano interrogare lo stesso biglietto di nuovo a T + 1 e così via a T + N, per assicurarsi che ottengano i dati più aggiornati. Ecco uno scenario per spiegare il mio problema di usabilità:

  • Al momento T, l'utente richiede l'id ticket: 1 e ottiene TUTTI i dati.
  • Usano i timer per impostare un intervallo di tempo che filtra altri dati.
  • Un paio di minuti dopo, si verifica un evento che può influire sullo stato del ticket 1, quindi l'utente desidera aggiornare i propri dati.
  • Problema La fascia oraria è stata impostata ed è parte della query, quindi l'utente vedrà solo i dati che aveva in precedenza.
  • Devo spiegare all'utente di reimpostare manualmente l'intervallo di tempo o di rendere l'ora di fine un po 'di tempo arbitrario in futuro, in modo che la query acquisisca tutte le nuove righe.

Quest'ultimo punto è il problema, non è ovvio per l'utente che devono reimpostare la fascia oraria su ogni nuova richiesta, inoltre è faticoso doverlo fare, quindi ho bisogno di una sorta di indicatore visivo, per avvisarli, OR un modo intelligente di rilevare che si tratta semplicemente di una query di aggiornamento anziché di una query di caricamento di tutto e di modificare automaticamente la query.

Se un utente desidera interrogare un ticket con un ID diverso, posso reimpostare automaticamente l'intervallo di tempo quando l'utente modifica la casella di testo che imposta l'id.

1
cjroebuck

Un modo per farlo sarebbe qualcosa come Google Analytics (il widget del calendario filtra i risultati) e separa visivamente i filtri relativi ai dati dai "filtri del tempo". Funzionerebbe bene per le pagine statiche.

Potresti anche fornire alcuni aggiornamenti live:

  1. l'utente imposta i filtri
  2. cambia intervallo di tempo
  3. invia query
  4. ricevere risultati
  5. visualizzare una casella con "nuovi dati/biglietti disponibili; ricaricare" ogni volta che ci sono nuovi dati tra la data di fine selezionata e la data corrente

Gli aggiornamenti live hanno senso quando ricevi molti aggiornamenti importanti in un tempo relativamente breve.

Spero che sia di aiuto

0
Liviu A

Il "tempo" filtrato è il tempo in cui i dati vengono generati?

(vale a dire nel caso seguente queste soluzioni non funzionerebbero: ho un filtro impostato su "tutti gli eventi di ieri" e, mentre eseguo una query, i nuovi eventi vengono generati con un timestamp di ieri)

Idee:

  1. Filtro predefinito = "Tutti gli eventi dopo data/ora ".

  2. 12 nuovi eventi dall'ultima query. Fai clic qui per includere

2
peterchen

Sembra che tu abbia un'idea generale di come dovrebbe essere gestito il tuo comportamento a tempo. Se lo codifichi in un insieme di regole, puoi ottenere lo stesso effetto come non applicare l'intervallo di tempo alla query. Dal punto di vista dell'ingegneria del software, è sempre una buona idea fornire quelle che vengono chiamate "query con finestre". In sostanza, significa che non stai chiedendo al database più di quello che puoi visualizzare in qualsiasi momento.

Per quanto riguarda la marcatura dell'interfaccia utente secondo cui alcune regole di filtraggio sono in vigore, ci sono una combinazione di tecniche che ho usato su progetti passati. Sono elencati di seguito.

Filtro breadcrumb : è molto efficace disporre di una traccia breadcrumb che mostri le regole di filtraggio in vigore in qualsiasi momento. È anche importante per questo tipo di approccio fornire un pulsante annulla (come un'icona 'x') per rimuovere i criteri di filtro ma preservare il resto. Esempio: Newegg.com (Il collegamento è a una query per un tipo specifico di unità, gioca con la traccia breadcrumb).

Pannello Ambito : simile nello spirito al filtro breadcrumb, ma diverso nella presentazione. A volte hai determinate regole o una gerarchia per alcuni elementi nel tuo ambito e vuoi che le persone controllino separatamente diverse parti della query. Non conosco esempi dal vivo in rete, quindi dovrò descriverlo. La mia app ha permesso alle persone di filtrare i messaggi per ora, posizione e argomento. Avevamo bisogno che gli utenti potessero controllare separatamente i tre aspetti del filtro e sia la posizione che l'argomento avevano una gerarchia. Il filtro breadcrumb non ha funzionato per questo perché non era chiaro all'utente cosa sarebbe successo se avessimo cliccato su un link più in alto nella gerarchia per la posizione/argomento. Presentandoli come tre criteri di filtro indipendenti, è stato chiaro all'utente cosa stavano vedendo e come cambiarlo. Per informazioni gerarchiche, abbiamo mantenuto l'idea del pangrattato per quella linea. Il tempo era una linea separata e avevamo quattro opzioni: la settimana scorsa, il mese scorso, l'anno scorso, tra xey.

Ambito di evidenziazione : se esiste una parte particolare della query a cui vuoi attirare l'attenzione, aiuta a distinguerla visivamente dal resto. Ti consigliamo di utilizzare una combinazione di colori ed elementi grafici, ad esempio aggiungendo un bagliore colorato ai criteri visualizzati. Il rosso è di gran lunga il colore più evidente, ma è anche associato a errori, stop e problemi generali. Potresti voler scegliere un colore diverso da quello (come il blu o un colore complementare allo sfondo).

0
Berin Loritsch

È possibile prendere in considerazione un'icona di "notifica" che indica che la finestra temporale corrente non include i dati più recenti. Qualcosa di simile a quando accedi al libro dei volti e vedi un quadratino rosso arrotondato con un numero che indica quante nuove notifiche hai ricevuto dall'ultima visita. Puoi anche prendere in considerazione l'idea di "intervalli di tempo", qualcosa del tipo "ultime 24 ore, ultime 48 ore, ecc".

0
ThatSteveGuy