Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] zagadnienia optymalizacji kodu JS
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
fragles
znalazłem troch tego w sieci - że należy skracać nazwy zmiennych, odwracać pętle, uważac na zakresy itp itd

ale mi chodzi o coś takiego jak sprawdzić ile wykonuje się dany kod - ja wiem że to zależy od klienta, ale tak do sprawdzenia dla siebie ile dany kod się wykonuje przed i po zmianie jakiegos fragmentu i tego typu sprawdzenia

czy jest jakies narzędzie do tego?
yaro
wykorzystaj funkcję new Date()
albo np. zerknij w kod: http://wd-testnet.world-direct.at/mozilla/.../jsTimeTest.htm

W książce "JavaScript dla webmasterów. Zaawansowane programowanie" Nicholas C. Zakas opsiuje właśnie Twój problem, polecam tę książkę, jest na prawdę świetna. Pokazuje różne sposoby na przyspieszenie wykonywania kodu jak i jego pobierania. Z ciekawostek to, napisał inny sposób na operację inkrementacji, który jest szybszy niż wbudowana funkcja js. Nie sprawdzałem, nie testowałem ale wierze że rzeczywiście tak jest winksmiley.jpg
fragles
a ja mam jeszcze jedno pytanie
- ile elementów może być na stronie, aby działała płynnie, lub co zrobić, aby przy dużej liczbie płynnie działało

sprawdzam sobie jQuery i chciałem sprawdzić do ilu elementów można obsłużyć na stronie (dokładniej to sobie chciałem zobaczyć, jak ileś divów równocześnie wykouje ten sam efekt, jak to wygląda), stworzyłem sobie pareset divów i dodałem funkcję chowające i pokazujące (z efektami) i np na IE dostałem komunikat, że ten skrypt może spowodować spowolnienie przeglądarki - czy chcesz kontynuować? zresztą na FF też widać było spowolnienie

czy jest jakaś granica (i z czego wynika) elementów które można obsłużyć jednocześnie, granica ilości elementów na stronie
yaro
Jak wiadomo DOM nie jest najszybszy :/ i stąd sie to bierze. Ciągle przeglądarki sa dosyć wolne, choć i tak dość znacznie przyspieszyły ostatnimi czasy. Powodów jest wiele. Jak sie przyglądniesz HTML'owi to aż sie przerazisz, bo html nie jest bardzo restrykcyjny, html 5 ma to troche poprawić. Bo teraz jest tak że możesz bardzo niechlujnie pisać kod. A przeglądarka żeby mieć jakiś udział w rynku musi wyświetlać poprawnie strony które nie są napisane dobrze w 100%. Kod przeglądarek jest naszpikowany różnymi wyjątkami i to je zabija. Opera do pewnego czasu bardzo trzymała sie standardów i co i niestety wielkiej popularności niezdobyła, bo niektóre strony niedziałały jak należy. Ostatnio słyszałem że zaczeli poprawiać kod gmaila itp. zastosowali userscript aby produkt innej firmy lepiej działał!

Jakby html był tak jak jakiś inny język programowania, tzn żeby sie trudniej w nim pisało, żeby trzeba było sie trzymać zasad, to na pewno o wiele lepiej strony wyglądałyby i szybciej chodziły, szczegolnie webaplikacje.

Co do komunikatu który Ci sie pojawił, to przeglądarki maja swoje własne wbudowane zabezpieczenia.
fragles
dzięki za odpowiedź, ja to mniej więcej rozumiem, ale czy w związku z tym na stronie jest jakaś dopuszczalna ilość elementów, tak aby działały sprawienie w połączeniu z JS?
czy ma to związek z pozycją elementu (realitve, absolute) czy ma to związek z "objętością elementu" (<div>(tło/tekst)</div>, <div>inne elementy</div>). Ja wiem, że jest stronicowanie, że tak się robi, ale z drugiej strony tak jak mi przychodzi do głowy rózne mapki z googlem na czele wyświetlają sporo elementów bywa że i kilkadziesiat a moze i kilkaset, dodatkowo każdy ma jakąś akcję na click, cos się pokazuje, wyświetla itp itd? Może praca na pojedyńczym elemencie - nawet jeśli tych elementów jest sporo jest "łatwiejsza" niż na podzbiorze jakiegoś zbioru elementów (np mam iles tam divów jedne są np zielone inne żółte i chcę żeby się zielone chowały, czy pokazywały - obojętne). Ogólnie chodzi mi o to jak złożoność dokumentu przekłada się na JS (o ile się przekłada jakoś) i czy można to jakoś usprawniać, ewentualnie czy są jakieś granice, po których wszystko znacząco zwalnia, staje się mniej wydajne.

Chyba, że napisanie strony w JS (np w Google Web Toolkit) jest lepszym wyjściem niż łączenie HTML i JS może to cos daje, że strona i cała aplikacja jest wydajniejsza i sprawniej działa?

nie wiem co ma znaczenie - oczywiście wiadomą sprawą jest, że jesli strona jest poprawna pod względem znaczników to jest lepiej (przeglądarka nie musi sie "męczyć") ale co jeszcze, w dojo czy jquery widziale, że do znaczników dodawane są atrybuty, które nie są z HTML-a, ale zakładam, że jesi są obudowane "" to nic nie szkodzi (bo pewnie w przeciwnym razie by ich nie było) ale co poza poprawnością ma jeszcze wpływ na wydajność? Przeglądalem sobie źródła i np onet i interia ma znaczniki <script> i tyle, wp czy gazeta.pl mają zwykłe znaczniki HTML-owe, a pewnie każda z tych stron działanie u klienta stawia sobie na dośc wysokim miejscu
yaro
hmm, ciężko określić granicę do której strona będzie płynnie chodziła, to także zależy od komputera użytkownika.

zobacz np. tą stronę: http://www.stevesouders.com/

jest troche różnych opracowań na temat wydajności js, ale ciężko je znaleźć sad.gif

kilka fajnych rzeczy tongue.gif
http://www.crockford.com
http://jslint.com/
http://fmarcia.info/jsmin/test.html
http://dean.edwards.name/
http://osteele.com/

miłego czytania winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.