Diskuze: Načtení dat, pouze jednou
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 14 zpráv z 14.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zdar,
jen moc nechápu to, že tu proměnnou přepíšeš. Když jí nastavíš
hodnotu v souboru start.php, kde tu proměnnou znova nastavuješ?
Vlastně já ji nepřepisuji. Jen jsem myslel, že když vkládám start.php, tak se vždy znova vytvoří proměnná, takže bude prázdná a budu opět načítat data.
http://php.net/…ire-once.php
Tohle ti načte soubor pouze jednou. moc nechápu, jakým způsobem to myslíš.
Při každém požadavku od klienta musíš znovu vytvářet Osoby, takže
nevím jakým způsobem myslíš, že ji přepisuješ.
Eventuelně můžeš použít isset($osoby) jako podmínku, jestli vytvářet
osoby nové. Pokud již proměnná s takovým názvem existuje, tak funkce
vrátí true.
Myslím si, že mu jde o něco podobné na způsob keše. Nechce to vypisovat vždy/číst data z db když znovu načteš stránku.
adder: Chápu-li to správně, tak si při načtení vytvoř dočasný soubor, tam přepiš data, které chceš vypsat a po nějaké době (hodinka, den) smaž a potom si jej vytvoř znovu.
Problém je v tom, že když dám následující kód, tak se to dostane to větve 'načtení databáze' i přesto, že už jsem je na jiné stránce načítal.
if(!isset($cars))
$cars = new Cars();
if($cars->isEmpty()) {
// ... načtení dat
}
Mara: Ano. něco na ten způsob. A nejde to jen uchovávat v proměnné?
Co třeba sešna (session, ty se vlastně také uchovávají dočasně na serveru), jaká je velikost dat, odhadem?
Ne, do proměnné uchovávat informace nemůžeš, protože při dotazu se zachytí požadavek a po jeho splnění se zase vše dá zpět do původního stavu (zjednodušeně řečeno). Pokud data, které z databáze načítáš, dále nijak neupravuješ (že bys nad nimi dělal nějakou časově náročnou operaci) a není výstup individuální pro každého uživatele (tedy že všichni uživatelé uvidí to stejné, nebo prakticky to stejné), zůstal bych u databáze. Nějaký cachovací systém bych tam nedával, ona ta databáze dokáže být v některých případech i rychlejší, než kdybys data byť jen jednoduše četl ze souboru.
To jsem zkoušel, ale přijde mi to prasácký a ani mi to nešlo. Je to externí XML soubor a nynější, který používám má 164kB, ale může se lišit (data do souboru jsou generována jiným zdrojem).
Jde jen o to, že jsem to nechtěl pořád načítat celé. Když mám např. stránku kontakt, kde nepotřebuji vůbec načítat databázi, tak to zpomaluje (alespoň se mi to zdá). Nebo další stránky, kde chci jen 4 objekty z databáze.
adder Hmm, tak to bude špatný návrh třídy kde provádíš výpis. Resp. proč děláš výpis tam kde ho nepotřebuješ?
Tak proč to načítáš na stránce kde máš kontakt, když to tam nepotřebuješ?
Zobrazeno 14 zpráv z 14.