konto usunięte
Temat: AngularJS
Marcin K.:
To jest oczywistość. Operacje na Node'ach HTML są najbardziej kosztowne czasowo i jest to fakt, obojętnie jaki silnik JS'a by nie był.
Przy dużej aplikacji ma to znaczenie.
Mówie to z własnego doświadczenia na podstawie aplikacji które mają 20k - 50k linii w JS, gdzie jest kilka tysięcy modeli i często 150 - 200 komponentów odpowiadających za generowanie widoku.
PS. Ja widziałem aplikacje napisane we frameworku X (wstaw cokolwiek), które też były b. szybkie tylko czego to dowodzi? Tego typu sformułowania bez poparcia jakimkolwiek większym opisem rodzaju projektu nie mają żadnego znaczenia bo możemy mówić o zupełnie innej skali projektów.
To jest kwestia podejścia do problemu. Masz taki problem że Twoja apka ma 50k linii kodu, kupe komponentów i dostaje czkawki ? Pierwszy krok to podzielić ją na obszary gdzie następuję PEŁNE przeładowanie widoku, ładowane są tylko wymagane komponenty itp.
Masz zbyt wiele operacji na DOM ? Może trzeba pomyśleć jak je zmniejszyć albo część interfejsu zastąpić canvasem albo czymś innym.
W obrębie obszaru apka ma dynamiczny interfejs a między obszarami przeładowujesz całość.
Flagowym przykładem z którym sam się ostatnio spotkałem była przewijana lista elementów. Gostek miał ponad 600 elementów na liście (ul > li) i narzekał że mu telefon czkawki dostaje. Gdzie na raz na telefonie widać było 8...
Jakie było zdziwienie gdy się okazało że lista może mieć 24 elementy a reszta jest "dokładana" i obcinana w trakcie przewijania. Tak że przewijanie było płynne i nie było problemów z listą już więcej.
Najczęstszym powodem tego że apka dostaje czkawkę na średniej jakości telefonie jest programista który ją pisał. Jak mówiłem - spotykałem apki na Angularze i śmigały one dobrze na moim telefonie gdzie ten jest relatywnie słaby. Trudno zwalać winę na framework skoro nie jeden pokazał że się DA i bez kombinowania.
A Angular wręcz zachęca bo jest kompatybilny chyba z każdą mobilną przeglądarką.Dariusz Półtorak edytował(a) ten post dnia 03.04.13 o godzinie 23:23