Diskuze: Zrychlení načítání webu Islandsoft

ITnetwork Zrychlení načítání webu Islandsoft

Avatar
Kit
Redaktor
Avatar
Kit:

Zjistil jsem, že se mi stránka při refreshi načítá docela dlouho. Hlavní stránka (pouze HTML) se mi načte za 400-500 ms, což by se určitě dalo zlepšit, ale jinak OK.

Našel jsem problém v SyntaxHighlighter. Skládá se z 18 javascriptových souborů, každý se načítá zvlášť. To je značná režie. Přitom by se to dalo snadno spojit do jednoho většího.

Všiml jsem si, že Alex Gorbatchev na svém webu vytvořil autoloader těchto skriptů. To by také mohlo zrychlit načítání.

Odpovědět 18.3.2012 11:08
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Ahoj, odezvu do 500ms nevidím jako problém.

SyntaxHL je na webu z historických důvodů (kompatibilita s některými články a fórem) a je nahrazován server-side řešením FSHL, které je napojeno jako plugin na parser článků Texy! Až si najdeme chvíli času, odstraníme SyntaxHL úplně, bohužel nemůžeme dělat vše najednou, je toho spoustu :)

Nahoru Odpovědět 18.3.2012 13:48
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Těch 500 ms bude nejspíš způsobeno tím, že domovská stránka Islandsoft má cca 110 KB. Když si z IS stáhnu třeba jeden skript SyntaxHL, u kterého předpokládám, že přes PHP nejde, dostanu se na cca 100 ms.

Jinak většina běžných portálů mívá odezvu 200-300 ms. Na svých stránkách, které mám u různých freehostingů dosahuji běžně 100-150 ms, ale jsou to většinou jednoduché nenáročné aplikace.

Proto jsem psal, že "by se určitě dalo zlepšit, ale jinak OK."

Byl by velký problém sloučit těch 18 souborů SyntayHL do jednoho? Stejně se vždy načítají všechny. Snížila by se tím zátěž serveru.

Další možností by mohlo být správné nastavení cache prohlížečů ze serveru tak, aby prohlížeč znovu nestahoval javascriptové soubory, které se naposledy měnily někdy před rokem. To by také snížilo zátěž serveru.

Nahoru Odpovědět 18.3.2012 14:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Hlavní strana má více kvůli té zdi s aktualitami (možná bychom jich mohli vypisovat méně), odezva na fóru je v řádu desítek ms, je to napsané v patičce. V JS nevidím problém.

Nahoru Odpovědět 18.3.2012 14:32
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Těch aktualit by mohlo být méně, řekněme 30 nebo např. za posledních 24 hodin, příp. větší z obou hodnot.

Když čekám 10 s na vykreslení stránky, tak to vidím jako problém. Většinou totiž chci sledovat všechna fóra a ta jsou na hlavní stránce. Když navíc nefunguje RSS, ...

Nahoru Odpovědět 18.3.2012 14:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

A 10s čekáš proto, že se načítá pár souborů, které jsou navíc cachované? To je mi tedy divné.

Snížíme počet aktualit, na RSS se pracuje, jak říkám, nemůžeme si sednout a napsat to celé najednou, je to již docela komplexní systém :)

Nahoru Odpovědět 18.3.2012 14:49
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

V hlavičkách HTTP není u JS o cache ani zmínka, prohlížeč se minimálně musí serveru zeptat, jestli ten soubor nebyl mezitím obnoven. Stačí, když se podíváš do logu Apache a uvidíš to tam.

Pokud přidáš např. hlavičku
Cache-Control: max-age=3600, must-revalidate
pro všechny .js, .css, .jpg, .gif, .png

Můžeš použít i hlavičku Expires.

ušetří to významně zátěž serveru a klienti budou spokojenější.

Nahoru Odpovědět 18.3.2012 15:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

O tom, že browser cachuje jen to, co "může", mě nepřesvědčíš, z vlastních zkušeností vím, že cache jsou v moderních prohlížečích řešeny velmi rigorózně a často je naopak problém vyvolat obnovení zdroje.

Když si dáš práci a budeš stopovat, co by šlo kde zlepšit, můžeme se tu bavit asi hodně dlouho, portál tohoto rozsahu se nedá napsat dokonale za den, je to běh na dlouhou trať plný optimalizací, změn, rozšiřování atd. Velmi si vážíme zájmu a námětů na zlepšení, ale tohle mi přijde přehnané. Zakončeme to tím, že simplifikujeme homepage a pro tvůj dobrý pocit mohu JS sloučit do 1 souboru, i když jsem přesvědčen, že to nemůže mít na vykreslení vůbec žádný vliv.

Nahoru Odpovědět 18.3.2012 15:27
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Vlastně jsi svou odpovědí předčil mé očekávání. Díky za kratší titulní stránku, je to poznat na rychlosti. Snad budou i ostatní spokojeni.

Udělal jsem si vlastní RSS, i když parsování takového HTML je spíš za trest. Až bude fungovat to oficiální, dej vědět. Takže načítání JS mě už také netrápí.

Nahoru Odpovědět 18.3.2012 21:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Jo, je to znát :) On se nám za poslední dobu zvýšil provoz a co se předtím plnilo 2 týdny je teď záležitostí několika dnů, tak to bylo přecpané.

V tom skriptu má mateřská třída itemů na zdi abstraktní metodu toHTML, která potom generuje výstup. Jde jen o to tam připsat a implementovat v potomcích toRSS, nějak to uspíším ;)

Nahoru Odpovědět 18.3.2012 21:23
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Spíchli jsme s kolegou to RSS :)

Nahoru Odpovědět 18.3.2012 23:10
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Zřejmě ještě není v provozu:

This page contains the following errors:

error on line 1 at column 42: Unsupported encoding windows-1250
Below is a rendering of the page up to the first error.

Nahoru Odpovědět 18.3.2012 23:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Aha, tak pardon. Vypadá to, že mi někde chybí podpora Windows-1250 v prohlížeči, ale jinak to funguje.

Nahoru Odpovědět 18.3.2012 23:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.