Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] zagadnienia optymalizacji kodu JS, czyli co zrobić aby było szybciej
fragles
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
yaro
post
Post #2





Grupa: Zarejestrowani
Postów: 160
Pomógł: 4
Dołączył: 22.04.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował yaro 24.12.2008, 20:28:59
Go to the top of the page
+Quote Post
fragles
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
yaro
post
Post #4





Grupa: Zarejestrowani
Postów: 160
Pomógł: 4
Dołączył: 22.04.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
fragles
post
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował fragles 27.12.2008, 22:08:09
Go to the top of the page
+Quote Post
yaro
post
Post #6





Grupa: Zarejestrowani
Postów: 160
Pomógł: 4
Dołączył: 22.04.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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źć (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

kilka fajnych rzeczy (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 08:44