Spožděné načítání z databáze?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Onda
Člen | 20
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

Zkus Nette checker nebo jak se ta kulišárna jmenuje, jestli máš na hostingu všechno potřebné.

Onda
Člen | 20
+
0
-

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
+
0
-

Tak pochybuji, že oni budou vědět jak nastavit Nette. Zkus prohledat fórum, myslím že to tu někde bude.

Onda
Člen | 20
+
0
-

Tak na serveru byl zaply eAccelerator, už je vypnutý ale stále stejný problém :(

Šaman
Člen | 2666
+
0
-

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
+
0
-

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
+
0
-

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().

Šaman
Člen | 2666
+
0
-

To by teoreticky mohlo být ono, ale bez těch kódů ti nikdo nic konkrétního neřekne.

Onda
Člen | 20
+
+1
-

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 :)