Spožděné načítání z databáze?
- Onda
- Člen | 20
Zdravím, opět na vás obracím se zajímavým problémem. Mám eshop kde přidávám zboží do košíku, v base presenteru mám funkci která vezme id košíku a spočítá všechny položky v něm a vypočítá celkovou cenu. Pokud ale přidám do košíku třeba 3 položky a přejdu na košík na vypočítané ceně vidím 0 ale položky v seznamu vidím takže v košíku jsou. Je možné že nette nějak opožděně načítá? Cena se objeví správně vypočítaná až tak po 3 refreshi stránky a vůbec nevím proč. Díky za rady
- Šaman
- Člen | 2666
Ahoj, o žádném zpožděném načítání nevím. Budeš sem muset dát
víc informací, nebo ideálně odkaz na projekt někde na githubu, či
podobném, kde si můžem proklikat zformátovaný kód.
Dělá ti to ve všech prohlížečích? (Jen abys vyloužil cacheování
stránek v prohlížeči.) Předpokládám, že nějaký akcelerátor
připojení (což je zase cacheování) nepoužíváš.
- Onda
- Člen | 20
Ahoj díky za odpověď, ano dělá to ve všech prohlížečích ale jen na hostingu. Na localhostu mi vše funguje a vše počítá hned tak jak má. Na githubu to nemám.
Model:
metoda calc() – saha do databaze košíku odkud pomocí Sum(cena_zbozi *
pocet_zbozi) pocita celkovou cenu zbozi v kosiku(nechci sem davat primo dotaz
protoze je docela velkej)
Presenter:
kosikPresenter(renderSouhrn) – volam metodu calc a ukladam do promenne price
kterou posilam do sablony
Sablona:
promennou kosik vypisuje do policek kde mam celkovou cenu.
Už jen to že na localhostu to běží v pohodě a na hostingu ne je divný. Když jsem se díval do databáze tak tam se vše ukládá jak má. Zboží tam bylo takže se to jen nepřekresluje mě přijde
- Pavel Kravčík
- Člen | 1196
Zkus Nette checker nebo jak se ta kulišárna jmenuje, jestli máš na hostingu všechno potřebné.
- Onda
- Člen | 20
Reflection phpDoc Disabled
Reflection phpDoc are not available (probably due to an eAccelerator bug). You
cannot use @annotations.
Memcache extension Disabled
Memcache extension is absent. You will not be able to use
Nette\Caching\Storages\MemcachedStorage.
Díky za radu počítám že to bude tím prvním, v nastavení hostingu jsem ale nic takového nenašel takže napsat na podporu?
- Pavel Kravčík
- Člen | 1196
Tak pochybuji, že oni budou vědět jak nastavit Nette. Zkus prohledat fórum, myslím že to tu někde bude.
- Šaman
- Člen | 2666
Memcache by vadit neměla, anotace předpokládám, že už máš v pořádku a eAccelerator by to být mohl. Jestli to na localu funguje, tak to pravděpodobně není záležitost kódu, ale hostingu. Určitě už je ten eAccelerator vypnutý, nebo se třeba musí počkat na nějaký restart serveru?
- Onda
- Člen | 20
Psali mi že eAccelerator je vypnutý tudíž asi netřeba čekat na restart. Je možné že to může být něčím v htaccess? V kódu jsem zkoušel změnit skoro vše. Může dělat problém že celý ten basket mám jako snippet? Abych ho mohl ajaxem překreslovat při mazání z košíku. To funguje taky bez problémů pokud něco smažu hned cenu správně přepočítá.
- Onda
- Člen | 20
Možná jsem přišel na potenciální problém. Mám tam funkci které mi vybírá aktuální cenu podle času.. to znamená že musí být validní od uložení po NULL, pokud tedy uložím produkt s nějakým časem a na serveru je čas jiný načte se až za těch pár vteřin. Je to možné? Pokud použiji funkci new DateTime().
- Onda
- Člen | 20
Už jsem na to přišel no, mě to nenapadlo ale bohužel když jsem uložil produkt s aktuální cenou tak jsem k němu uložil i údaj kdy ta cena byla uložena(new DateTime()) a ten jsem potom porovnával s NOW() v mysql. Tím jsem zjistil že mají oba o nějakých 20s jiný čas a on hledal cenu která tam vlastně ještě nebyla. Proto se to vždy ukázalo až po pár načteních protože uběhl ten čas :)