it-swarm-eu.dev

Jak to vysvětlit při filtraci podle času

Mám jednoduchou aplikaci, která je pro moji práci docela specifická, ale obecně řečeno, umožňuje uživatelům vyhledávat data pro určitou „lístek“ nastavením několika parametrů pomocí polí se seznamem/textových polí a poté stisknout tlačítko Odeslat, které vyvolá výsledky z databázi a zobrazí je v mřížce.

Data jsou časově citlivá a jsou uspořádána v pořadí podle nejnovějších dat nahoře. Funkcí aplikace je „přiblížit“ na určitý časový úsek v datech, a tak jsem vytvořil 2 vlastní ovládací prvky pro výběr času pro počáteční a koncový čas, které při úpravě dynamicky filtrují řádky v mřížky, takže se zobrazí pouze data v časovém poli.

Potom jsem si myslel, že by bylo dobré začlenit čas začátku a konce časových řezů do skutečného databázového dotazu, aby dotaz vrátil pouze data v časovém rámci, protože by to zlepšilo časy dotazů a načítání drasticky, ale to způsobuje problémy s použitelností, protože časový rámec musí být aktualizován nebo resetován pokaždé, když uživatel chce obnovit data nebo dotaz na jinou lístek, jinak by se filtr stále použil.

Snadnou možností je odstranit časové pole z dotazu úplně a způsobit velké časy načítání při každé aktualizaci dat pro určitou vstupenku.

Ale přemýšlel jsem, jestli se někdo setkal s podobným problémem, nebo jestli má někdo nějaké nápady na udržení filtru timeslice v dotazu, ale je zřejmé, kdy je třeba jej aktualizovat/resetovat atd.

PDATE: Trochu více pozadí - data o těchto 'vstupenkách' se shromažďují v reálném čase, takže jakmile uživatel vytvoří počáteční dotaz v čase T, je velmi pravděpodobné, že budou chtít dotazovat stejně lístek znovu v T + 1 atd. v T + N, aby bylo zajištěno, že získávají nejaktuálnější data. Zde je scénář vysvětlující můj problém použitelnosti:

  • V čase T se uživatel dotazuje na ID lístku: 1 a získá VŠECHNA data.
  • Používají časoměřiče k nastavení časového řezu, který odfiltruje další data.
  • O několik minut později dojde k nějaké události, která může ovlivnit stav lístku 1, takže uživatel chce aktualizovat svá data.
  • Problém Časový řez byl nastaven a je součástí dotazu, takže uživatel uvidí pouze data, která předtím měl.
  • Musím vysvětlit uživateli, aby ručně resetoval časový úsek, nebo aby konečný čas udělal libovolný čas v budoucnosti, aby dotaz zachytil všechny nové řádky.

Tímto posledním bodem je problém, který není pro uživatele zřejmý, že musí resetovat časový úsek u každého nového požadavku, také se cítí chmurně, aby to musel udělat, takže potřebuji nějaký vizuální indikátor, který je upozorní, OR nějaký chytrý způsob, jak zjistit, že se jedná pouze o aktualizační dotaz, nikoli o načtení všeho dotazu a dotaz se automaticky změní.

Pokud chce uživatel požádat o lístek s jiným ID, mohu automaticky resetovat časový úsek, když uživatel upraví textové pole, které nastavuje ID.

1
cjroebuck

Jedním ze způsobů, jak toho dosáhnout, by bylo něco jako Google Analytics (widget kalendáře filtruje výsledky) a vizuálně oddělil filtry související s údaji od „časových filtrů“. To by fungovalo dobře pro statické stránky.

Můžete také poskytnout některé aktuální aktualizace:

  1. uživatel nastavuje filtry
  2. změnit časový interval
  3. odeslat dotaz
  4. přijímat výsledky
  5. zobrazte pole s „novými daty/lístky jsou k dispozici; znovu načíst“, pokud mezi vybraným datem ukončení a aktuálním datem existují nová data

Živé aktualizace dávají smysl, když získáte spoustu důležitých aktualizací v relativně krátké době.

Snad to pomůže

0
Liviu A

"Čas", který filtrujete, je čas, kdy jsou data generována?

(tj. v následujícím případě by tato řešení nefungovala: Mám filtr nastavený na „všechny události ze včerejška“ a při dotazu jsou nové události generovány s časovým razítkem včera)

Nápady:

  1. Výchozí filtr = "Všechny události po datum/čas ".

  2. 12 nových událostí od posledního dotazu. Klikněte sem pro vložení

2
peterchen

Vypadá to, že máte obecnou představu o tom, jak by mělo být vaše chování v časovém poli řízeno. Pokud to kodifikujete do sady pravidel, můžete získat stejný efekt , jako kdybyste na dotaz nepoužili časový úsek. Z pohledu softwarového inženýrství je vždy dobré poskytnout to, co se nazývá „dotazy v okně“. V podstatě to znamená, že nepožadujete databázi pro více, než co můžete kdykoli zobrazit.

Pokud jde o označení uživatelského rozhraní, že platí určitá pravidla filtrace, existuje kombinace technik, které jsem použil v minulých projektech. Jsou uvedeny níže.

Drobečková navigace : Je velmi efektivní mít stručnou stopu, která zobrazuje pravidla filtrace platná v daném okamžiku. Pro tento typ přístupu je také důležité poskytnout tlačítko zrušit (jako ikonu „x“), které odstraní tato kritéria filtru, ale zachová se zbytek. Příklad: Newegg.com (Odkaz je na dotaz pro konkrétní typ jednotky, hrajte se stopou strouhanky).

Panel Scope : V duchu podobné filtru strouhanky, ale liší se v prezentaci. Někdy máte určitá pravidla nebo hierarchii některých prvků ve svém oboru a chcete, aby lidé ovládali různé části dotazu samostatně. Nevím o žádných živých příkladech na síti, takže to budu muset popsat. Moje aplikace umožňovala lidem filtrovat zprávy podle času, místa a tématu. Potřebovali jsme, aby uživatelé mohli ovládat tři aspekty filtru zvlášť, a umístění i téma měly hierarchii. Filtr strouhanky pro to nefungoval, protože uživateli nebylo jasné, co by se stalo, kdybychom klikli na odkaz vyšší v hierarchii místa/tématu. Když je uvedete jako tři nezávislá kritéria filtru, bylo uživateli jasné, co vidí a jak je změnit. Pro hierarchické informace jsme pro tuto linii ponechali stručnou myšlenku. Čas byl samostatný řádek a měli jsme čtyři možnosti: minulý týden, minulý měsíc, minulý rok, mezi x a y.

Highlighting Scope : Pokud existuje určitá část dotazu, na kterou chcete upozornit, pomáhá to vizuálně odlišit od ostatních. Budete chtít použít kombinaci barev a grafických prvků, například k zobrazeným kritériím přidat barevnou záři. Červená je zdaleka nejviditelnější barva, ale je také spojena s chybami, zastavením a obecnými problémy. Možná budete chtít zvolit jinou barvu než ta (například modrá nebo doplňková barva pozadí).

0
Berin Loritsch

Možná budete chtít zvážit ikonu „oznámení“, která označuje, že aktuální časový rámec neobsahuje nejnovější data. Něco podobného, ​​jako když se přihlásíte do knihy obličejů a uvidíte malý červený kulatý čtverec s číslem označujícím, kolik nových oznámení jste obdrželi od poslední návštěvy. Můžete také zvážit myšlenku „plátky časů“, například „posledních 24 hodin, posledních 48 hodin, atd.“.

0
ThatSteveGuy