Uživatelé často přestávají používat aplikace proto, že jsou moc pomalé nebo se pomalu načítají. Objevte 8 způsobů, jak je zrychlit, méně zatěžovat servery, a tím i ušetřit. Poslechněte si nebo přečtěte náš 9. podcast.
Buďte vždy o krok před konkurencí, získejte přístup k celé sérii podcastů. Přihlaste se k odběru našeho newsletteru.
Tentokrát si v našem technologickém okénku povídal CEO Pixape Radek Semančík a programátoři Vojtěch Seidler a Josef Štěpánek o způsobu, jak zrychlit fungování vašich webových a mobilních aplikací.
Dle výsledků našeho nedávného průzkumu je jeden z nejčastějších důvodů, proč uživatelé přestávají používat nějakou aplikaci, její pomalost. Jak načítání aplikací zrychlit?
S rychlejším zobrazením stránek vám pomůže cache paměť. Do této si uložíte data, které potřebujete zobrazit např. na hlavní stránce, a jakmile tam přijde uživatel, data se okamžitě zobrazí. Nebude tedy třeba, aby aplikace při příchodu každého uživatele volala dotaz na databázi.
Http cache – Po nastavení může prohlížeč uložit do cache obrázky nebo další prvky dané stránky a nemusí k jejich zobrazení vždy znovu posílat dotaz do API.
Server cache – V tomto případě se ukládání týká konkrétních uživatelských dat, na které se vždy znovu nemusíte dotazovat. K tomu slouží například aplikace Redis nebo Memcached.
Při využívání cache paměti můžete být i více kreativní. Webovou aplikaci zrychlíte také tím, že si uložíte každý večer do cache paměti celé úvodní html. Díky tomu se uživateli stránka zobrazí ihned bez zatížení serveru. Server bude aplikaci zatěžovat až tehdy, kdy uživatel přejde na nějakou podstránku. Tam je ale vždy menší provoz.
Stejně tak můžete do cache paměti načíst jen to, co uživatel uvidí ihned při příchodu do aplikace. Následně se načítá až obsah, který se uživatel sám rozhodne spatřit. Až uživatelův pohyb na stránce tedy zatěžuje server.
Další způsob zrychlení můžete využít tehdy, pokud chcete všem uživatelům zobrazit stejnou informaci. V takovém případě ji jednoduše uložíte do cache paměti, když si ji zobrazí první uživatel. Ostatním uživatelům se pak už bude vykreslovat stejný výsledek bez zatížení serveru.
V případě, že jsou data dynamická a průběžně se mění, můžete například nastavit, aby se každou hodinu uložila do cache paměti aktuální data. Také tento způsob je méně náročný na server. Nezpracováváte totiž neustále nějakou složitou databázovou operaci. Navíc se pak uživateli vykresluje pokaždé něco jiného.
Druhá varianta je ta, že necháte dynamicky se načítající bloky načíst až tehdy, když na ně uživatel na stránce sjede.
Také React vám pomůže zrychlit načítání stránek. U Reactu je totiž to, co se zobrazuje, jen statický html text. Není za ním žádná logika, která by jeho načtení brzdila. Proto se vykreslí okamžitě. Spolu s tím ale aplikace začne volat další dotazy a začnou se načítat i další data v různých částech stránky, které uživatel zatím nevidí.
React tedy zajišťuje, že se ihned viditelná část zobrazí okamžitě, a to další se začne načítat vzápětí. Díky tomu je běh aplikace naprosto plynulý a uživatel nemusí na nic čekat.
Toto samozřejmě umí i další kvalitní javascriptové framevorky, my však z již dříve zveřejněných důvodů používáme právě React.
Zrychlit zobrazování výsledků můžete tím, že si uložíte do cache paměti výsledky pro určitý filtr. Pokud například nějaký uživatel vyhledá výsledky s filtrem „Praha“, můžete si tyto výsledky uložit do cache. Jakmile pak bude to samé hledat jiný uživatel, ihned a bez zátěže serveru mu výsledky vyskočí.
Problém u tohoto řešení je však příliš obecně nastavené vyhledávání. Tehdy je velmi pravděpodobné, že uživatelé budou hledat často něco, co není v paměti. Data tedy budou načítána z databáze a vyhledávání bude pomalé.
K tomu můžete například použít technologi Elastic Search. Ten si zpracuje zdrojová data a umožní mnohonásobně rychlejší textové vyhledávání. Tato technologie se často používá k vyhledávání produktů v e-shopech, kdy si je zaindexujete a následně mezi nimi dokáže velmi rychle vyhledávat.
Vykreslování stránky samozřejmě zrychluje také dobře navržená databáze bez chyb a problémů, jak jsme se již zmiňovali ve článku o vhodném výběru databáze a chybách v jejím navrhování. Když totiž již samotné vyhledáváni trvá deset vteřin, je jasné, že je problém v databázi. V takových případech je rozhodně chyba řešit pomalost cache pamětí – řešení je zde optimalizace vyhledávání.
Další ze způsobů, jak zrychlit fungování aplikace, je správné nastavení serveru a škálování v cloudu, kde aplikace běží. Zde je vše třeba nastavit tak, aby se v případě vytíženého serveru v cloudu ihned vytvořil další server, který začne odbavovat čekající klienty. Aplikace díky tomu poběží stále plynule, její provoz ale bude dražší. Proto rozhodně nezapomínejte ani na předchozí tipy.
Zrychlení v tom nejobecnějším slova smyslu umožňuje i API, o kterém jsme již psali ve článku Proč se použití API rozhodně vyplatí. Dokáže totiž ihned propojit nejrůznější služby. Když chcete například umožnit uživateli, aby okamžitě po zaplacení získal přístup nebo si mohl něco stáhnout, s pomocí API ihned kontaktujte banku, ověříte platbu a vše uživateli okamžitě zpřístupníte. Žádné zbytečné čekání.
Jak už bylo řečeno, rozhodně byste s cache pamětí neměli zrychlovat špatně navrženou databázi. V tomto případě vám to dříve či později beztak spadne na hlavu.
Dále pak hrozí, že kvůli cache paměti mohou uživatelé vidět již stará a neplatná data. To se může stát třeba při přenastavování oprávnění. Když má totiž nějaký uživatel oprávnění něco vidět, ale to oprávnění mu změníte, mohou se mu kvůli cache stále zobrazovat stará data. Řešení je, že starou cache paměť ihned zneplatníte a načtete znovu.
Ač se tedy cache paměť ukazuje jako výborný způsob, jak zrychlit aplikaci, zmírnit zatížení serveru, a tím snížit náklady na provoz aplikace, má i svá úskalí. Proto je důležité s ní zacházet velmi opatrně.
Chcete vědět více o tom, jak zrychlit vaši aplikaci nebo potřebujete rovnou vývojářský tým? Ozvěte se nám.
Odebírejte naše podcasty a objevte, proč nejčastěji aplikace neuspějí a jak tomu zabránit. Naservírujeme vám nejnovější přístupy i technologie, díky kterým budou vaše aplikace oblíbenější, ziskovější a budete s nimi mít méně starostí. Sledujte nás a uspějte na poli aplikací.
V reakci na novou legislativu v energetice, která klade významné požadavky na pravidelné informování o spotřebě tepla a teplé vody, přinášíme klientský portál navržený speciálně pro energetické společnosti.
Chci vědět vícPoznejte náš portál pro leasingové společnosti a půjčovny strojů a aut, který zvyšuje efektivitu, zlepšuje zákaznickou spokojenost a otevírá nové obchodní příležitosti.
Chci vědět vícSpráva objednávek a komunikace s dealery mohou být náročné, pokud nemáte správné nástroje. Náš klientský portál pro dealery je navržen tak, aby zjednodušil a zefektivnil tyto procesy.
Chci vědět vícObjevte, jak náš B2B portál pro výrobní firmy může zefektivnit vaše obchodní procesy a posílit vztahy se zákazníky. Nabízíme vynikající poprodejní servis, automatizované notifikace, rychlé řešení reklamací a personalizované služby.
Chci vědět vícV reakci na novou legislativu v energetice, která klade významné požadavky na pravidelné informování o spotřebě tepla a teplé vody, přinášíme klientský portál navržený speciálně pro energetické společnosti.
Chci vědět víc