Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][CSS][HTML] Optymalizacja witryny
elmozaur
post 23.07.2012, 10:44:18
Post #1





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Witam i o pomoc pytam :-)

Ostatnio zainteresowalem sie tematem optymalizacji stron WWW.
Googlajac i czytajac rozne watki postanowilem zainstalowac Yslow i kilka innych narzedzi.
Poniewaz programy ladnie pokazuja gdzie sa waskie gardla - mniej wiecej wiem co nalezy poprawic. Problem w tym ze nie do konca wiem jak.

- style CSS
npaisane jest ze trzeba w osobnych plikach (a najlepiej aby polaczyc w jeden plik aby zmniejszyc ilosc zapytan lub importow), poczym czytam ze dobrzejest umiescic kod css w headzie strony
Pytanie: czy ze wzgledu na wydajnosc lepiej dac sytl w kodzie strony czy w zewnetrzynm pliku. Jesli troche tu a troche tu to czym sie kierowac wybierajac style do wpisania w kodzie ?

- kod Javascript
Tu tez doczytalem ze generalnie lepiej wszystko w 1 pliku wczytywanym gdzies w dole strony
Pytanie: Jesli ktos uzywa np jQuery + TinyMCE(z pluginami) + Lightbox+costam jeszcze (w sumie ok 1MB danych JS) jak optymalnie i szybko wczytywac te dane ?

- Etagi a Expire
Gdzies wyczytalem, że generalnie etagi mozna sobie odpuscic na rzecz Expire
Jak juz wczesniej pisalem troche danych mam do pobrania wiec chcialbym je pobrac raz i uzywac bez ponownego pobierania przez np 24h - z wyjatkiem plikoww graficznych ktore powinny byc walidowane. Ale nie wiem jak to ustawic.

Sporo czytalem na ten temat ale nie wiem jak ogarnac to praktycznie. Czy moge prosic o jakas podpowiedz w tym temacie ?
pozdrawiam
Grzegorz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
!*!
post 23.07.2012, 10:50:32
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
- style CSS

wszystko ładujesz w osobne pliki, które wiszą w header (lub jeden i używasz @import).

Cytat
- kod Javascript
Tu tez doczytalem ze generalnie lepiej wszystko w 1 pliku wczytywanym gdzies w dole strony
Pytanie: Jesli ktos uzywa np jQuery + TinyMCE(z pluginami) + Lightbox+costam jeszcze (w sumie ok 1MB danych JS) jak optymalnie i szybko wczytywac te dane ?

1MB js? biggrin.gif Również tak jak w przypadku CSS do plików i niby dlaczego na końcu? To nie ma znaczenia.

Zainteresuj się kompresją, zarówno po stronie serwera jak i samych plików JS. Np czymś takim http://javascriptcompressor.com/


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
memory
post 23.07.2012, 10:52:09
Post #3





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


Polecam wtyczkę PageSpeed . Można pobrać już skompresowane css czy obrazy
Go to the top of the page
+Quote Post
Niktoś
post 23.07.2012, 10:52:49
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
wszystko ładujesz w osobne pliki, które wiszą w header (lub jeden i używasz @import).

Chyba lepiej używać atrybutu style w przypadku kiedy jakiś tag jest tworzony dynamicznie.

Jeśli chodzi o optymalizację strony to także radziłbym się zapoznać z kompresowaniem plików statycznych(grafika,css,js itp.) oraz samego header'a poprzez gzip, oraz optymalnym ustawieniem cache browsera z poziomu aplikacji.

Ten post edytował Niktoś 23.07.2012, 10:56:27
Go to the top of the page
+Quote Post
rocktech.pl
post 23.07.2012, 10:56:32
Post #5





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Witam.

Cytat
- style CSS

Zainteresuj się tym projektem https://github.com/h5bp/html5-boilerplate . Nie chodzi mi o to abyś od razu implementował te rozwiązanie ale po przeczytaniu okomentowanych plików będziesz wiedział więcej.
Cytat
- Etagi a Expire

Rzuć okiem na .htaccess https://github.com/h5bp/html5-boilerplate/b...aster/.htaccess
Cytat
- kod Javascript

https://github.com/ender-js



--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
!*!
post 23.07.2012, 10:57:42
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
Chyba lepiej używać atrybutu style w przypadku kiedy jakiś tag jest tworzony dynamicznie.

Nie sądzę, aby miało to większe znaczenie. Skoro i tak możesz go edytować w locie.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Niktoś
post 23.07.2012, 11:19:19
Post #7





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Nie sądzę, aby miało to większe znaczenie.

Jednakże jakieś ma.
Zakładając że budujesz kontrolkę dynamicznie w zależności od sytuacji kontrolka zmienia wygląd:
  1. if(true){
  2. echo "<input type='text' class='zielony' />";
  3.  
  4. }else{
  5.  
  6. echo "<input type='text' class='czerwony' />";
  7. }


to w zewnętrznym pliku css będziesz musiał użyć dwie klasy
  1. .zielony{
  2. background-color:green;
  3. }
  4. .czerwony
  5. {
  6. background-color:red;
  7. }

I teraz pomyśl jak takich tworzonych tagów będzie dużo to ile klas bedziesz musiał zastosować i jak wzrośnie ci rozmiar pliku css i wydłuży się czas jego wczytywania,a pamiętaj, że w danej chwili jest używana tylko jedna klasa.Dlatego uważam, że w takiej sytuacji lepiej jest używać atrybutu style.

Ten post edytował Niktoś 23.07.2012, 11:24:18
Go to the top of the page
+Quote Post
!*!
post 23.07.2012, 11:28:58
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


To ma znaczenie marginalne i jest zależne od wielu innych czynników, autor pytał o sposoby. eot.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Niktoś
post 23.07.2012, 11:36:10
Post #9





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
autor pytał o sposoby. eot.


Na moim prostym przykładzie, przedstawiłem ,że pchanie wszystkiego w zewnętrzny plik css wcale nie musi być optymalniejsze.
Zgodzę się w 100% z sformułowaniem:
Cytat
jest zależne od wielu innych czynników

Nie ma złotego środka:)

Ten post edytował Niktoś 23.07.2012, 11:36:30
Go to the top of the page
+Quote Post
elmozaur
post 23.07.2012, 11:38:22
Post #10





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


wszystkim dziekuje za pomoc i spora ilosc wiedzy. Biore sie do roboty ;-)
Go to the top of the page
+Quote Post
Mephistofeles
post 23.07.2012, 13:58:38
Post #11





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Cytat(!*! @ 23.07.2012, 11:50:32 ) *
1MB js? biggrin.gif Również tak jak w przypadku CSS do plików i niby dlaczego na końcu? To nie ma znaczenia.

Ma znaczenie. Umieszczając (szczególnie duże) skrypty na końcu nie blokujesz ładowania innych, ważniejszych dla użytkownika plików.
Go to the top of the page
+Quote Post
viking
post 23.07.2012, 14:11:04
Post #12





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


Raczej powinno się stosować ładowanie asynchroniczne:
http://microjs.com/#loader
Jeśli skompresujesz do jednego pliku w HTML 5 script ma atrybut async co pozwoli ominąć ekstra kod.

W CSS @import jest również ładowany synchronicznie.


--------------------
Go to the top of the page
+Quote Post
Niktoś
post 23.07.2012, 16:34:28
Post #13





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


@UP- dałbym Ci plus za ten link ,bardzo fajne biblioteki. Będę musiał wypróbować ,szczególnie te które poprawiają synchronizację ładowania/wykonywania skryptów js.
Dodane do zakładek.
Go to the top of the page
+Quote Post
wNogachSpisz
post 23.07.2012, 17:59:40
Post #14





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---



- style CSS
Problem polega na znalezieniu złotego środka pomiędzy dwoma zmiennymi:
- pobranych i niewykorzystanych definicji stylów
- ilości plików tj. zapytań do serwera

Z jednej strony, jeśli stworzysz dużo plików, każdy stylizujący niewielką ilość elementów czy podstron, to klient nie będzie musiał np. przy wchodzeniu na główną pobierać dużej ilości potencjalnie niewykorzystanych stylów.
Z drugiej strony jeśli podzielisz style na zbyt wiele plików, koszt zużytych zasobów serwera związany z obsłużeniem dużej ilości zapytań będzie przeważający.

Generalnie nikt się nie bawi w jakieś nadzwyczajne kompresowanie frontendu, często style są podzielone na kilka plików i to nie z uwagi na optymalizację tylko separacja layoutu od templaytu. Warto poparzeć jak robi konkurencja, np. github ma dwa potężne pliki CSS na CDNie, oba ładują się z głownej.. Niby bez sensu ale też tak można.

- Etagi a Empire
Jedno nie wyklucza drugiego, stosuj oba. Jest też bardzo przydatny max-age.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 20:03