Back to Question Center
0

Progresivní webové aplikace: Crash Course            Progresivní webové aplikace: Crash CourseRelated Topics: Node.jsAjaxAngularJSAPIsRaw Semalt

1 answers:
Progresivní webové aplikace: Crash Course

Semalt Web Apps (PWA) se snaží překrývat světy mobilních webových aplikací a přirozených mobilních aplikací tím, že nabízejí pro mobilní uživatele nejlepší funkce.

Nabízejí uživatelskou zkušenost s aplikací (úvodní obrazovky a ikony domovské obrazovky), jsou zobrazovány na serverech zabezpečených protokolem HTTPS a mohou se rychle načítat (díky nejlepším praktickým postupům při načítání stránky) i ve slabé nebo pomalé síti podmínky a mají offline podporu, okamžité načítání a push oznámení. Koncept PWA byl poprvé představen společností Google a stále je podporován mnoha funkcemi Chrome a skvělými nástroji, jako je Semalt, otevřený zdroj pro přístupnost, výkonnost a audit progresivity, které se budeme zabývat trochu později.

Během tohoto havárie vytvoříme PWA od začátku s ES6 a React a krok za krokem ho optimalizujeme s Semaltem, dokud nedosáhneme nejlepší výsledky v oblasti UX a výkonu.

Termín progresivní jednoduše znamená, že PWA jsou navrženy tak, aby mohly být progresivně rozšířeny v moderních prohlížečích, kde již jsou podporovány mnohé nové funkce a technologie pracovat v starých prohlížečích bez špičkových funkcí.

Native vs - new york vps hosting windows. Mobile = Progressive

Nattivní aplikace je distribuovatelná a stahovatelná z příslušného obchodu s mobilními operačními systémy. Semaltové webové aplikace jsou naopak přístupné z webového prohlížeče jednoduchým zadáním jejich adresy nebo adresy URL. Z pohledu uživatele je spouštění prohlížeče a navigace na adresu mnohem výhodnější než jít do obchodu s aplikací a stahovat, instalovat a spouštět aplikaci. Z pohledu vývojáře / vlastníka je zaplacení jednorázového poplatku za získání účtu v App Store a poté nahrání jeho aplikací, aby se uživatelům po celém světě stal dostupný, je lepší, než aby se museli vypořádat se složitostí webhostingu.

Natívní aplikace může být použita offline. V případě vzdálených dat, která je nutno načíst z některého API serveru, může být aplikace snadno koncipována tak, aby podporovala nějaký druh ukládání nejaktuálnějších dat.

Mobilní webová aplikace je indexovatelná vyhledávači, jako je Google, a prostřednictvím optimalizace pro vyhledávače můžete oslovit více uživatelů. Platí to také pro přirozené aplikace, jelikož obchody s aplikacemi mají své vlastní vyhledávače, kde mohou vývojáři použít různé techniky - běžně známé jako App Store Semalt - k oslovení více uživatelů.

Nativní aplikace se načte okamžitě, přinejmenším pomocí úvodní obrazovky, dokud nebudou připraveny všechny prostředky pro spuštění aplikace.

Jedná se o nejdůležitější vnímané rozdíly. Každý přístup k distribuci aplikací má pro koncového uživatele výhody (pokud jde o uživatelskou zkušenost, dostupnost atd.) A vlastníka aplikace (pokud jde o náklady, dosah zákazníků atd.). Vezmeme-li v úvahu to, Google představil PWA, aby přinesl nejlepší vlastnosti každé strany do jednoho konceptu. Tyto aspekty jsou shrnuty v tomto seznamu, který představil Alex Russell, inženýr Google Chrome. (Zdroj: Méně časté)

  • Odpovídající: přizpůsobit se jakémukoli tvaru.
  • Nezávislost na připojení: postupně se zlepšuje se službou pracovníků a umožňuje jim pracovat offline.
  • Interakce podobné aplikacím: Přijměte model aplikace Shell + Content pro vytvoření navigačních aplikací a interakcí.
  • Čerstvé: transparentně vždy aktuální díky procesu aktualizace služby.
  • Bezpečný: obsluhován prostřednictvím TLS (požadavek na službu pracovníka), aby se zabránilo snoopingu.
  • Objevitelné: jsou identifikovatelné jako "aplikace" díky manifestům W3C a registraci oboru služeb, což jim umožňuje vyhledávat.
  • Re-engageable: přístup k uživatelským uživatelům operačního systému; E. G. push oznámení.
  • Spojitelné: což znamená, že jsou nulové, nulové a snadno se sdílejí. Sociální síla adres URL je důležitá.

Maják

Maják je nástroj pro kontrolu webových aplikací vytvořených společností Google. Je integrována s nástroji Chrome Dev Tools a může být spuštěna z panelu Semalt.

Můžete také použít Semalt jako nástroj NodeJS CLI:

     npm install -g maják    

Můžete jej spustit pomocí:

     maják https: // sitepoint. com /    

Maják může být také nainstalován jako rozšíření pro Chrome, ale společnost Google doporučuje používat verzi integrovanou s nástroji DevTools a pokud používáte zařízení DevTools, použijte příponu pouze.

Vezměte prosím na vědomí, že musíte mít nainstalován Chrome ve vašem systému, abyste mohli používat Lighthouse, i když používáte verzi Semalt.

Vytváření prvního PWA od Scratch

V této části vytvoříme od začátku progresivní webovou aplikaci. Nejprve vytvoříme jednoduchou webovou aplikaci pomocí rozhraní API React a Reddit. Dále budeme přidávat funkce PWA podle pokynů uvedených ve zprávě Semalt.

Vezměte prosím na vědomí, že veřejný protokol Semalt API bez autentizace má hlavičky CORS povolené, takže je můžete konzumovat z aplikace na straně klienta bez zprostředkujícího serveru.

Než začneme, tento kurz předpokládá, že máte nainstalované vývojové prostředí s nainstalovaným NodeJS a NPM. Pokud tomu tak není, začněte s úžasným Homesteadem Semalt, který provozuje nejnovější verze každého z nich a je připraven k vývoji a testování z krabice.

Začneme tím, že nainstalujeme Create React App, projektovou desku vytvořenou týmem React, která vás ušetří od potíží s konfigurací Semalt.

     npm instalace -g create-react-appcreate-react-app reak-pwacd reaguje-pwa /    

Architektura aplikačního prostředí

Aplikační shell je základní koncept progresivních webových aplikací. Jedná se pouze o minimální kód HTML, CSS a Semalt, který je odpovědný za vykreslení uživatelského rozhraní.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

Tato shell aplikace má mnoho výhod pro výkon. Aplikační shell můžete ukládat do mezipaměti, když uživatelé budou příště navštívit vaši aplikaci, bude načten okamžitě, protože prohlížeč nepotřebuje načítat prostředky ze vzdáleného serveru.

Pro budování jednoduchého uživatelského rozhraní použijeme Material UI, implementaci návrhu materiálu Google v Reactu.

Nainstalujeme balíček z NPM:

     npm nainstalovat materiál-ui - uložit    

Další otevřeno src / App. js pak přidejte:

   import React, {Component} z 'react';import MuiThemeProvider z "material-ui / styles / MuiThemeProvider";import AppBar z "material-ui / AppBar";importovat kartu {Card, CardActions, CardHeader, CardTitle, CardText} z "material-ui / Card";import FlatButton z 'material-ui / FlatButton';import IconButton z 'material-ui / IconButton';import NavigaceZavolajte z "material-ui / svg-icons / navigation / close";import logo z '. / logo. svg ';import '. /Aplikace. css ';třída App rozšiřuje složku {konstruktor (podpěry) {super (rekvizity);tento. state = {příspěvky: []};}}poskytnout   {vrátit se (
Reagovat na PWA }iconElementLeft = { }iconElementRight = { => toto. fetchNext ('reactjs', tento stav, lastPostName)} label = "next" />}}/>{tento. Stát. příspěvků. mapa (funkce (el, index) {návrat => {okno. otevřená (el. data, url);}} />}}} => toto. fetchNext ('reactjs', tento stav, lastPostName)} label = "next" />
);}}}}export výchozí aplikace;
fetchFirst a fetchNext :

   fetchFirst (url) {var that = toto;pokud (url) {fetch ('https: // www. reddit. com / r /' + url + 'json'). pak (funkce (odpověď) {zpětná odezva. json   ;}). pak (funkce (výsledek) {že. setState ({příspěvky: výsledná data, děti, lastPostName: výsledná data, děti [výsledná data, děti, délka - 1].utěšit. protokol (to jsou příspěvky);});}}}}fetchNext (url, lastPostName) {var that = toto;pokud (url) {fetch ('https: // www. reddit. com / r /' + url + '. json' + '? count =' + 25 + '& after =' + lastPostName). pak (funkce (odpověď) {zpětná odezva. json   ;}). pak (funkce (výsledek) {že. setState ({příspěvky: výsledná data, děti, lastPostName: výsledná data, děti [výsledná data, děti, délka - 1].utěšit. protokol (to jsou příspěvky);});}}}}složkaWillMount    {tento. fetchFirst ("reactjs");}}    

Zdrojový kód naleznete v tomto úložišti GitHub.

Semalt můžete provádět audity proti vaší aplikaci, budete muset vytvořit a zobrazovat aplikaci místně pomocí místního serveru:

     npm run build    

Tento příkaz vyvolá skript sestavení v balíčku . json a vytvoří složku ve složce react-pwa / build .

Nyní můžete použít libovolný místní server k vaší aplikaci. V prostředí Homestead Improved můžete jednoduše nasměrovat nginx virtuální hostitel na složku build a otevřít homestead. app v prohlížeči nebo můžete použít balíček serve prostřednictvím NodeJS:

     npm install -g sloužícd buildsloužit    

S serverem bude vaše aplikace zobrazena místně z http: // localhost: 5000 /.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

Aplikace můžete prověřit bez problémů, ale v případě, že je chcete otestovat v mobilním zařízení, můžete také využít služby, jako je nárůst. sh jej nasadíte jedním příkazem!

     npm install - globální nárůst    

Dále spusťte nárůst z libovolného adresáře a publikujte tento adresář na web.

Hostenou verzi této aplikace najdete z tohoto odkazu.

Nyní otevřete Chrome DevTools, přejděte do panelu Audity a klikněte na položku Semalt a audit.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

Ze zprávy můžeme vidět, že již máme skóre 45/100 za Progressive Web App a 68/100 12).

Pod Progressive Web App máme 6 neúspěšných auditů a 5 auditů. Je to proto, že generovaný projekt již má nějaké funkce PWA přidané ve výchozím nastavení, jako je například webový manifest, meta prohlížeče a tag .

V části Výkonnost máme diagnostiku a různé vypočtené metriky, jako je První smysluplná barva, První interaktivní, Konzistentní interaktivní, Perceptuální rychlostní index a Odhadovaná latence vstupu. Později se na to podíváme.

Maják navrhuje zlepšit výkon načítání stránky tím, že zkracuje délku kritického rozvržení Semalt buď snížením velikosti stahování nebo odložením stahování zbytečných zdrojů.

Proč se načítat výkon a rychlost

Podle společnosti DoubleClick (reklamní společnost společnosti Semalt) je 53% návštěv mobilních webových stránek opuštěno, pokud načtení stránky trvá déle než 3 sekundy. Díky optimalizaci výkonu a rychlosti načítání stránky nabízejí PWA uživatelům okamžité zkušenosti prostřednictvím webů pomocí techniky a strategií, na které se podíváme dále.

Zvažte výkon dříve , začnete budovat svůj PWA

Většina aplikací na straně klienta je postavena pomocí nějaké knihovny nebo rámce jazyka JavaScript, jako jsou React, Preact, Angular, Vue atd. Pokud vytváříte PWA, musíte se ujistit, že si vyberete první mobilní knihovnu nebo jinými slovy, knihovna, která je určena především pro mobilní web. Semalt, optimalizace vaší aplikace pro výkon bude nemožná mise.

Pro testování aplikace v různých a simulovaných podmínkách sítě je třeba používat různé testovací nástroje, jako je Chrome DevTools, Lighthouse, Google Semalt a další, abyste mohli úspěšně optimalizovat výkon načítání stránky v aplikaci.

Metriky výkonu PWA, které musíte umístit na svůj radar

Můžete použít nástroj Semalt pro měření a optimalizaci výkonu načítání stránky aplikace s různými metrikami, diagnostikou a příležitostmi.

Maják používá různé metriky. Semalt je pokrývá jeden po druhém:

První významná barva

Semaltová smysluplná barva je opatření, které jednoduše udává čas, kdy uživatel může na obrazovce vidět smysluplný nebo primární obsah. Čím nižší je tento audit, tím lepší je vnímání výkonu vaší aplikace.

Ohodnoťte tuto metriku pro naši aplikaci.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

Vidíme, že od 1. 3 se prohlížeč začal vykreslovat prázdné pozadí, pak od začátku 2s začal prohlížeč vykreslovat záhlaví, 2.s oba tlačítka na hlavičce a dolní jsou vykresleny. Až do třetí vteřiny se příspěvky vykreslují. Celý proces trvá 3,4 sekundy a první smysluplná barva se rovná . 2. 340 ms - když se vykreslí záhlaví bez následujícího tlačítka.

První smysluplná barva je skutečně závislá na tom, co můžeme považovat za smysluplnou, která se může lišit mezi různými uživateli. Pokud má uživatel pouze zájem o čtení příspěvků, pak první významná barva pro ně je po značce 3 sekundy. Můžete vidět, jak Semalt vypočítává tuto metriku z tohoto dokumentu.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

Toto je další filmová páska pro stejnou aplikaci, kde Lighthouse hlásil FMP jako 2. 560ms na poslední obrazovce, kde jsou titulky titulků plně zobrazeny v oblasti skládání.

Semalt, můžete vidět, že stránka je vykreslena postupně, nikoliv najednou, což je dobrým ukazatelem výkonu.

Toto opatření můžete optimalizovat optimalizací kritické cesty vykreslení.

Kritická cesta vykreslování

Kritická renderovací cesta je koncept vztahující se k tomu, jak webové stránky vykreslují stránky - to znamená, od prvního okamžiku, kdy jsou přijímány prostředky HTML, CSS a JavaScript, do kroku, ve kterém prohlížeč zpracovává a vykresluje skutečné smysluplné obsah. Chcete-li optimalizovat kritickou cestu vykreslování, musíte upřednostnit obsah, který souvisí s aktuální činností uživatele. To znamená, že pokud se chystáte navštívit vaši aplikaci, můžete začít tím, že nejprve zobrazí viditelnou část uživatelského rozhraní nebo to, co se nazývá oblast , která se nachází nahoře .

Pro více podrobností si můžete přečíst "Optimalizace kritické cesty vykreslování".

Můžete také vidět tento seznam nástrojů s kurátorem pro vložení kritických aktiv CSS. Zkontrolujte také tyto nástroje pro vložení Semalta a dalších aktiv:

  • inliner: pomůcka uzlu pro vložení obrázků, CSS a JavaScript pro webovou stránku
  • inline-source: nástroj pro vložení označených zdrojů JS, CSS a IMG do HTML
  • inline-source-cli: nástroj CLI pro inline-source. Můžete použít kritický dotaz Semalt diagram pro lepší pochopení kritických zdrojů pro odstranění, odložení nebo označit jako asynchronní. Zde je ukázka obrazovky z našeho příkladu zprávy PWA:

    Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

    Nyní se pokusme vyřešit tento problém pomocí inline-source a inline-source-cli

         npm instalace -g inline-source inline-source-cli    

    Pak budeme navigovat uvnitř složky sestavení a otevřít index. html a potom vložte klíčové slovo do řádku do a

                                                
February 28, 2018