- Matey
- Člen | 142
Dnes som sa náhodou uklikol pri odosielaní komentára a pribudli 2 komentáre, skúsil som kliknúť viac krát a pribudlo 8 komentárov, v podstate sa to tvári tak že si môžem klikať až kým ma to neprestane baviť :)
Samozrejme v spracovaní formuláru presmerujem/prípadne sa odošle ajaxom, konkrétne:
či už načítam stránku ajaxom alebo sa presmeruje, nekonečný spam len tak pribúda
pozeral som na viacnasobne odeslani formulare a viacnasobne ulozeni do databaze
ale sú to hodne staré príspevky..
pribudlo do nette (používam 2.2.2) nejaké pekné riešenie ktoré ošetrí
viacnásobné odoslanie formulára?
Editoval Matey (16. 7. 2014 0:24)
- Šaman
- Člen | 2666
Odhaduji to na chybu na tomhle řádku
Nebo se ti to dokončí, vyběhne flashmessage a správně
redrawne/přesměruje? Podle mě ti to po vložení komentáře skončí na
chybě, která tomu dokončení zamezí. Bylo by to vidět i v adrese (pokud
zakážeš ajax) – neskončíš na čistém pohledu, ale budeš mít
v adrese něco jako ?do=nejakyFormSubmit
…
//edit: Že tam má být tohle?
Editoval Šaman (16. 7. 2014 2:21)
- Matey
- Člen | 142
v tom žiadny problém nie je, začal som používať LeanMapper, takže persistujem entitu Comment, ale ťahám si ju(ich) ako m:belongsToMany cez entitu Article, no a teda po persistovani potrebujem do aplikácie dostať čerstvé data z db, tj ten riadok ktorý sa ti nezdá(ťahám síce zbytočne aj dáta ktoré sa nemenili, čiže Article a Comment entity ktoré sa nemenili), ale inak je ten riadok dobre lebo ťahám Article entitu podľa webalizedName
ráno sem hodím kód, možno predsa len robím niečo zle
edit: nedá mi to zaspať, ono ak by som vždy len redirectol (žiadny ajax) tak v tom spracovaní nepotrebujem načítať nové dáta, nečítajú sa v action metóde, v render metóde sa predaju šablóne
ale ak použijem ajax, redrawnem, nestane sa to že sa action metóda preskočí a použije sa len render?
Editoval Matey (16. 7. 2014 3:27)
- Šaman
- Člen | 2666
Bez AJAXu ti to šlape?
S AJAXem sice nastavíš formuláři nulové hodnoty, ale jestli ta komponenta
nemá snippety, tak se nepřekreslí, takže zůstane vyplněný. Teď hledám
v dokumentaci nějakou ukázku, ale nikde nic. Ve starších ukázkách
(Todolist) to ale bylo. Zkus obalit celý content snippetem content a ten
překresluj, uvidís, jestli to pomůže.
Editoval Šaman (16. 7. 2014 3:47)
- Matey
- Člen | 142
tak tu je môj ArticlePresenter
šablóna article:
po odoslaní ajaxom mi pribudne nový komentár a formulár sa vynuluje, to ide, len to pri tých 60 komentároch ktoré som tam naspamoval už trvá 1,7s, asi to bude tým že naťahujem nové data z db a pre každú komponentu s komentárom vyhľadávam entitu Comment v array entit Comment {foreach $article->comments as $comment}…{/foreach}
k tej otázke o viacnásobnom odoslaní formulára, je niečo nové čo nette ponúka aby sa zabránilo viacnásobnému odoslaniu a ja to nepoužívam, alebo je to skôr mojím prístupom k tomu spracovaniu formulára?
Editoval Matey (16. 7. 2014 10:53)
- Matey
- Člen | 142
ešte dodám .. skúsil som upraviť spracovanie formulára takto (čiže žiadne načítavanie dát, to sa deje až po presmerovaní v metóde actionArticle) a vždy presmerovať
stále ale nie je problém odoslať formulár viac krát :(
komentáre k článku sa plnia fakt rýchlo, od zlosti som ich poslal 18 naraz
:-/ (samozrejme v reále asi nik nebude takto spamovať, ale nepáči sa mi že
nedokážem zabrániť viacnásobnému odoslaniu)
Editoval Matey (16. 7. 2014 11:14)