Autor Zpráva
MartinM_93
Profil
Ahoj, tipuji, že rychlost zobrazení stránky, kde je přím zdrojový kód napsán uživatelem o třeba 10 obrázcích se načte rychleji, než kód generovaný pomocí php a výpisem z obrázků z DB.

Má otázka je v rámci rychlostní optimalizace, zda má smysl při vytvoření stránky například fotogalerie, vygenerovat html soubor jako pevný a ten uživateli načítat a při změně/přidání fotografie tento kód přegenerovat.

NEBO

Zda při příchodu uživatele na stránku pokaždé fotogalerii vypsat z My SQL pomocí PHP.

Doměnka: Myslím si, že když pokaždé změně vygeneruji html kód bude to asi nepraktické, ale koncovému uživateli se stránka načte rychleji. Pokud by se jednalo o pár řádků kódu, anmi ten kdo by to vládal by to nepoznal. Kdyby se jednalo o více, mohl by to uživatel odeslat a CRON by kontroloval jestli nema neco predelat kazdych 5 minut a pote by to predelal.

Jaky je Vas nazor?
jenikkozak
Profil
MartinM_93:
To záleží na obtížnosti sestavení stránky a na počtu uživatelů. U drtivé většiny projektů bude takovéto cachování zcela zbytečné.
Sir Tom
Profil
MartinM_93:
Též ahoj, při použití PHP a MySQL se zdrojový kód sestaví na serveru a pošle se uživatelovi. S použití HTML je zdrojový kód už na serveru sestaven a ten se posílá uživatelovi.
Teoreticky tedy čas ve druhém případě (když už je hotový zdrojový kód) je kratší, protože se nemusí čekat na to, až jej sestaví server. Nicméně v dnešní rychlé době tento rozdíl nepoznáš. Doporučuji ukládat fotogalerii do databáze - je to mnohem lepší pro budoucnost.
MartinM_93
Profil
Dobře, ale třeba takové kategorie u e-shopu. Nejsou moc náročné je to defakto jen text, ale moc se nemění, to by se mohlo předělat do HTML. Krom toho prohlížeče si umí ukládat do mezipaměti. Nevím, jestli jde říct prohlížeči, toto HTML si uchovej a při 10 navštěvě mu říct máš ho staré aktualizuj si ho. Tím pádem by se to zrychlilo. Osobně mě některé e-shopy tím ......, protože když překlikavam, pokaždé se mi načítá spousta věcí znova a zbytečně.


Chtěl bych říct, že můj internet někdy jede a překlkava stránky jako nic a někdy se umane a načítá ji několik sekund a pak jede zase normálně.
jenikkozak
Profil
MartinM_93:
Ano, to je právě ono. Čas vytvoření stránky na straně serveru může být v porovnání s dobou datového přenosu ze serveru na klienta zanedbatelný. Zde neušetříš, když budeš stránky na serveru předgenerovávat. (Pokud nejde o pochybný webhosting, kde databáze spíše nejede než jede.)
Co se týká datového přenosu, rozsah HTML je většinou zanedbatelný v porovnání s obrázky nebo javascriptem. Myslím, že se snažíš složitě šetřit na špatném místě.

Používej kompresi souborů, sniž počet požadavků na server (třeba využitím CSS sprite, spojením více externích js do jednoho souboru), využívej cache prohlížeče pro javascripty, stylopisy a obrázky. To jsou způsoby, kterými můžeš efektivně načítání zrychlit.
MartinM_93
Profil
Jen mě to tak napadlo, děkuji moc za Vaše názory :)
peta
Profil
U php se zkus podivat na ob_start. Treba to vyresi tvuj problem.
jenikkozak
Profil
Jak?
peta
Profil
jenikkozak:
Protoze 99% vsech serveru na kazde echo odesila data uzivateli a tabulka o 30 radcich se pak vykresluje 5s.
A protoze 99% vsech ucitelu pouziva pro vyuku php4 a povazuje za zbytecne upozornit na to a uci, ze maji lide pouzivat echo podobne jak se v pascalu pouziva v ukazkovych prikladech write/writeln.
Divim se, ze to nevis.
shaggy
Profil
peta:
otoze 99% vsech serveru na kazde echo odesila data uzivateli a tabulka o 30 radcich se pak vykresluje 5s.
Toto by aj mňa zaujímalo, ako bude tvoje "ob_start" rýchlejšie oproti obyčjanému echu.
To, že sa tabuľka s 30 riadkami vykresľuje pomaly, nie je problém na strane php. 30x echo prebehne rýchlejšie, než vôbec stihneš pomyslieť na to, že nejaké ob_start existuje.

A protoze 99% vsech ucitelu pouziva pro vyuku php4
Máš tento blud podložený niečim, alebo je to len jeden z tvojich (ďalších) výplodov?
Starneš, zabudol si spomenúť tvoje obľúbené sprintf. Alebo už to nie je také in a nahradil si ho ob_start?
peta
Profil
shaggy:
1. Mam to vyzkousene. Jinak, tva poznamka jinak nedava vubec smysl. Porovnavas jabka a hrusky. ob_start proti echo. Jenze echo a ob_start se pouzivaji soucasne.
2. Pracuji na skole vim, co u nas ucitele uci a co chodi resit se mnou.
3. Oblibene sprintf? Pouze ho povazuji za fajn, protoze diky nemu lze novackovi napsat kod tak, aby neobsahoval spojovani retezcu, cimz se vyhne problemy s uvozovkami a apostrofy. Zacal jsem to ted hodne pouzivat.
Mozna bys misto zvysovani sveho ega ponizovanim jinych mel zamerit pozornost vic na programovani.
shaggy
Profil
peta:
Porovnavas jabka a hrusky. ob_start proti echo.
Hmm, ja nič neporovnávam, to ty si s tým začal (odpovedal si na to, ako ob_start vyrieši jeho problém):
Protoze 99% vsech serveru na kazde echo odesila data uzivateli a tabulka o 30 radcich se pak vykresluje 5s.

Pracuji na skole vim, co u nas ucitele uci a co chodi resit se mnou.
Ja som za celý svoj život pracoval s niekoľkými desiatkami programátorov. A iba tí starší sa učili programovať na php4. Musíš si uvedomiť, že väčšina ľudí sú samouci - neučia sa programovať v škole. A je irelevantné, čo ich učia učitelia, ktorí nemajú na takú výučbu dostatočnú kvalifikáciu.

Mozna bys misto zvysovani sveho ega ponizovanim jinych mel zamerit pozornost vic na programovani.
Ja ťa neponižujem, hodnotenie reálneho stavu nie je ponižovanie.
Tvoja chyba je, že máš veľmi skreslené vedomosti o programovaní. Často si obľúbiš nejakú funkciu a potom ju radíš v každej druhej téme (nedávno to bolo sprintf, teraz sa bojím, že začneš s ob_ funkciami).
Ty by si sa namiesto nezmyselných a zbytočných rád mal zamyslieť nad tým, čo človek skutočne potrebuje a poradiť mu vecne.
Davex
Profil
peta:
Protoze 99% vsech serveru na kazde echo odesila data uzivateli
To je další báchorka z kategorie, že 'řetězec' je rychlejší než "řetězec" a není to pravda, protože

1) Webserver ještě sám bufferuje nezávisle na PHP.
2) Přenosová vrstva by měla data skládat do větších paketů o velikosti až 1500 bytů (na LAN až 9000 bytů), a potom každý výstup echo neputuje sítí sám ve vlastním paketu.
3) Pro okamžité odesílání by se muselo spustit flush(), což se používá jen zřídka.
pcmanik
Profil
peta:
Aj ked si dám vypluť tabuľku o tisíc riadkoch, nikdy to netrvá 5 sekúnd ale oveľa, oveľa menej. Ako dosiahnem stav, aký popisuješ ty?
K tvojmu druhému bodu, ak radíš tým učitelom podobné bludy čo niekedy vypustíš tu, tak nechcem vediet čo sa tam tý žiaci vlastne učia.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: