Title-be adatbázisból egy cikk címe
Adott egy probléma: hogyan lehet azt megoldani, hogy egy cikk címét beleírjam a <title>-be?
a) már előtte belenézek az adatbázisba és kiszedem a címet
b) kimenet bufferelése és ha megvan a cím, rögtön eresztés
Melyik a jobb? Bufferelni, ha nem muszáj nem akarok, mert csak korlátozza a júzert, viszont a <title> kiiratása előtt még nem akarok azzal foglalkozni, hogy mi is lesz a tartalom... hiszen a tartalomig fix elemek vannak (fejléc, menü, bannerek stb) és csak a középső hasáb = tartalom helyére szoktam include-al behívni az adott modult.
Én eddig a buffert választottam, de kiváncsi lennék, hogy mi a jobban elfogadott megoldás!
■ a) már előtte belenézek az adatbázisba és kiszedem a címet
b) kimenet bufferelése és ha megvan a cím, rögtön eresztés
Melyik a jobb? Bufferelni, ha nem muszáj nem akarok, mert csak korlátozza a júzert, viszont a <title> kiiratása előtt még nem akarok azzal foglalkozni, hogy mi is lesz a tartalom... hiszen a tartalomig fix elemek vannak (fejléc, menü, bannerek stb) és csak a középső hasáb = tartalom helyére szoktam include-al behívni az adott modult.
Én eddig a buffert választottam, de kiváncsi lennék, hogy mi a jobban elfogadott megoldás!
a buffer miert is korlatozza a usert?
kimenet késik
XHTML?
de
- kimenet = kiírás
- olvasás = felhasználó böngészi az oldalt
Ezek voltak megtévesztőek?
Sarkítottam
Erre írtam válaszul, ugyanis XHTML esetén sem olvashatja addig a user pl. Firefoxban az oldalt, míg az egész lapszerkezet (nem a kapcsolódó képek, css, stb.!) le nem jött. Ez szélsőséges körülmények között (lassú/letöltésektől erősen terhelt net, góliát dokumentumok, stb.) előjöhet.
És pontosan a szélsőségesség miatt volt benne némi irónia is: ritkának látom az olyan helyzeteket, mikor a böngészgető felhasználót bármiben is korlátozza a kimenetpufferelés.
ez biztos?
Pár gyakorlati eset: én a az swf.hu-nál érzékelem nagyon sokszor, hogy nagyon lassan szenvedi össze a táblázatokat (boccs a rekléámért)..
Amúgy pedig a saját lapjaimnál is sokszor látom viszont, hogy a portál jobb széle csak később jön meg - persze ha éppen terhelt a vonal, megosztott internetnél ez gyakori probléma.
Ezek is elég sarkított dolgok, nyilván nem táblázatos oldalfelépítésben és 0.5Kb/s-ben kell gondolkodni, de most készülget egy nagyobb volumenü oldal és szeretnék felkészülni az esetleges rohamokra is.
próbáld ki, ha nem hiszed
3.0
fogalmam nincs, hogy csinálják a profik...
ugyanaz mint a buffer
Ez a megoldás ugyanaz, mint a bufferelés, csak házilag megoldva. Talán még rosszabb is, mert sima print() helyett egy változóba iratom a tartalmat, amivel áttekinthetetlenebb lesz a tartalom.
Ez a sablon rendszer alapja
2) előtte egy asszociatív tömbbe gyüjtenéd $lap['title'] = ""; a dolgokat
3) Beolvasnád a fájlt és az asszociítív tömb kulcsai szerint kicserélnéd az értékekre a jelölőket
akkor máris okos sablon kezelésed van.
pl. $TITLE változó, kimenetpufferelés, sablonrendszer
1. A title-t "késlelteted", vagy
2. a HTML headet "hozod előrébb".
Az 1. azt jelenti, hogy valamiképp tárolod a cikk részleteinek lekérésétől számítva a title-ig a cikk címét (felesleges csak a címéért még egy lekérést csinálni); erre logikusan a legegyszerűbb egy változó, de lehet bonyolítani kimenetpuffereléssel is (csak ezért teljesen felesleges), vagy ezt szimuláló "kimenetgyűjtő változóval" (egy változóba rakosgatsz mindent, amit majd a végén echo-zol).
A 2. esetében már akkor felépíted a HEAD-et, mielőtt tényleges kimenet lenne - ez jellemzően a sablonrendszerek egyik előnye.
Érdemesebb az utóbbit használni, előnyeiről máshol írtam két cikket. (Az anyagokat azért is ajánlanám, mert kifejezetten bevezető jellegűek.)
Template rendszerek
Ott mire kiadod a display() elemet addigra minden adatot össze _KELL_ gyüjtened, és átadni a template rendszernek.
Igaz a php magában is egy remek template rendszer, de egy plussz réteg segít fegyelmet tartani a kódban.
js???
De most az AJAXos korszakban nincs valami JS-es megoldás erre, amivel akár a teljes oldal megjelenése esetén bekövetkező javascript függvény átírnál a <title> tartalmát??
bye Tomi
JS és hozzáférhetőség