ugrás a tartalomhoz

Web Apps Are the Future

Endyl · 2014. Szep. 25. (Cs), 23.40
Miben jobbak a webalkalmazások a natívaknál, és miben kell még fejlődniük
 
1

Alkalmazások

Hidvégi Gábor · 2014. Szep. 28. (V), 12.35
Az elképzelés jó (ti. a webalkalmazások képviselik a jövőt), de érdemes feltenni pár kérdést a témával kapcsolatban:
  • Mi a különbség a weboldal és a webalkalmazás között? Egy múltkor beküldött blogmark szerint a bustle.com egy "app". Ha ránézek, pontosan úgy néz ki, mint egy hagyományos weboldal, annyi különbséggel, hogy js-sel generálják a tartalmat (cserébe nem is működik jól a navigáció, mert ha a fenti vízszintes részben rányomok egy képre, majd nyomok egy Visszát, nem ugyanoda áll vissza – Ajax-szal fejleszteni nem egyszerű).
  • Melyik az a megrendelő, akinek szüksége van webes alkalmazásra? Magyar specialitás, hogy az előbbi halmazból hányan vannak, akik meg is tudják fizetni az alkalmazás kifejlesztését?
  • A HTML-t alapvetően statikus dokumentumok megjelenítésére találták ki bő húsz éve, azóta pedig toldozgatták-foldozgatták, mára elég szép nagyra dagadt. Ez egyrészt ott jelent hátrányt, hogy a szabványok is nagyok, átláthatatlanok és pongyolák, ami biztonsági résekhez is vezet, másrészt olyan részeket is tartalmazhatnak, amire egy alkalmazás fejlesztésekor nincs szükség, például a szemantikusnak hívott elemek nagy része ilyen környezetben értelmét veszti.
A HTML már nagyon túlterhelt, érdemes megnézni például egy <div> elemnek hány tulajdonsága (és függvénye) van, Firefox 32-ben például 192, Chrome 24-ben 133. Érdekes módon például az addEventListener mindkettőnél a lista végén van, ami azt jelenti, hogy amikor az elem.addEventListener(...) kódrészletet meghívjuk, a futtatókörnyezetnek előbb egy százvalahány elemű tömbön kell végigiterálnia, mire megtalálja az adott metódust, és csak utána tudja lefuttatni.

Ez két kérdést vet fel:
1, Alkalmazások írásához szükség van-e egy ennyire általános DOM fára?
2, Nem lenne-e egyszerűbb és gyorsabb, ha normál függvényhívásokkal operálnánk? A fenti példa nézhetne ki úgy is, hogy addEventListener(elem, ...), és máris megspóroltunk
a, egy rakat memóriát, mert a DOM fában kevesebb elem van
b, párezer utasítást, mivel maga az elem már a függvényhívás előtt megvan, azaz a referenciáját közvetlenül át lehet adni a (globális) addEventListener-nek

Ha minden marad úgy, ahogy most van, akkor egy webes alkalmazás soha nem fogja utólérni a natívat.
2

Nem lenne-e egyszerűbb és

Poetro · 2014. Szep. 28. (V), 18.41
Nem lenne-e egyszerűbb és gyorsabb, ha normál függvényhívásokkal operálnánk? A fenti példa nézhetne ki úgy is, hogy addEventListener(elem, ...), és máris megspóroltunk
a, egy rakat memóriát, mert a DOM fában kevesebb elem van
b, párezer utasítást, mivel maga az elem már a függvényhívás előtt megvan, azaz a referenciáját közvetlenül át lehet adni a (globális) addEventListener-nek

Nem spórolnánk igazából memóriát. Az objektum típusából, illetve leszármazási fájából adódik, hogy van ilyen metódusa, ami csak egyszer kerül memóriában lefoglalásra, nem minden egyes példány esetén. Nem is lenne kisebb a fa. Az elem már a függvényhívás előtt megvan, ezért meg tudjuk hívni a metódusát. Sokkal nehezebb lenne kikeresni a teljes globális és lokális névtérben megkeresni a függvényt, majd lefuttatni.