Jump to content
GSForum - Segélyvonal

Gyorstüzelõk elleni védelem


Recommended Posts

Posted

Mostanában egyre gyakrabban fordul elõ, hogy olyan helyeken, ahol meg kell nyomni egy gombot, az a drága ügyfél duplán kattint, mindenféle anomáliákat okozva.

 

Van erre valami egyetem megoldás azon túl, hogy JS figyeli a gombnyomást és azonnal elcsapja onnan gombot, ahogy megnyomták? Egyáltalán elég gyors ez vajon ahhoz, hogy ne lehessen kétszer megnyomni? Tapasztalat, valaki?

Posted

Ugyan ezzel küzdök egy ideje. A fenti linkelt oldal sajnos nem megoldás, még akkor sem, ha a szkript eldob egy másik oldalra, ha végzett a feldolgozással, mert a böngészők simán meghívják kétszer egymás után az eredeti oldalt, két külön szálon. Én egyelőre - a javascriptre nem gondoltam még - csak olyan megoldást találtam ami ellenőrzi, hogy rövid időn belül történik-e ugyan az az esemény újra meg újra. Ha igen, akkor csak az első esemény fut le, és az általa generált eredményt adja vissza a felhasználónak az összes többi is. Így úgíy tűnik a felhasználó számára, mintha minden rendben lenne. (Csak ez meg nem nevel a helyes használatra)

Posted

Gombnyomásra le kell tiltani a gombot;

Formküldésre eseménykezelõt kell rakni egyszeri elküldés után, hogy ne lehessen elküldeni újra (return false);

 

Szerveroldalon:

 

Minden formhoz kell egy egyedi azonosító (mindig más-más, nem egy és ugyanaz), SESSION-be tárolni;

Vissza kell küldeni mindig;

Ellenõrizni kell (ha nem okés, nincs feldolgozás);

CSAK EGYSZER HASZNÁLHATÓ - ellenõrzés után ki kell venni a SESSION-bõl;

Posted

A redirect oké miután a formfeldolgozó folyamat lezajlott. De a gomb megnyomásakor ez nem tud működni: a duplaklikk ideje és a feldolgozó futási ideje közt bitang nagy különbség van, több nagyságrend.

 

Igen, én is gombeltűnős vagy letiltós JS megoldáson gondolkodom, de tetszik ez a $_SESSION-ös dolog is, amivel talán meg lehetne akadályozni, hogy amikor a vásárló lusta kivárni a 10-30 másodpercet, amíg létrejön a rendelése (karácsony előtt, amikor terhelt a MySQL, néha eltart ennyi ideig), elkezdi nyomkodni az F5-öt, és így a normális rendelése mellett csináljon még 4-5 ürest.

 

Az a durva, hogy a probléma most nem a karácsonyi, terhelt környezetben merül fel, hanem egy viszonylag egyszerű, egy adott termékkezelési folyamatot vezénylő PHP-ban, aminek a végén van egy gomb, aminek megnyomásakor mindenféle dolog történik az adott termékekkel a folyamat lezárásaként. A derék termékkelező embereknek meg vagy remeg az ujja, vagy rossz az egere, vagy nem tudom, de tudnak olyat csinálni, hogy a log táblában másodpercre azonos pillanatban lezavarják kétszer a lezárási folyamatot ugyanarra a termékre, mindenféle anomáliát okozva ezáltal. Én meg vakarom a buksi fejem, hogy de ezt hogy...

Posted

Meg kellene nézni, minden rendben van-e az adatbázissal (indexek), tárolt eljárások is segíthetnek, de a mysql korszerû beállítása is sokat dobhat.

Posted

Na, erre mondjál egy embert, aki ért ehhez, meg lehet keresni, és nem azzal kezdi, hogy 2 millió forint.

 

Az indexek szerintem rendben vannak, tárolt eljárásaink nincsenek, a MySQL pedig egészen biztosan nincs korszerûen beállítva, mint ahogy az adatszerkezet is vérzik valószínûleg több sebbõl, de nekem meg folyamatosan "én ehhez csíra vagyok" érzésem van...

Posted

Az adatbázis szerkezetét mindenestül én is szívesen megnézném, a MySQL-en pedig az dobna, ha több memóriát kapna.

Posted

A tárolt eljárások is sokat segíthetnek, mert az optimalizáló elõre tud dolgozni velük, nem kezd el szüttyögni, amikor megkapja a két oldalas insert into from select-et.

  • 2 weeks later...
Posted

Bocs, nincs elfelejtve a dolog, csak el vagyok havazva. Tolok majd egy táblastruktúra-dumpot alkalomadtán.

  • 1 month later...
Posted

Nos... öhm... hamarosan...

  • 4 weeks later...
Posted

:lol:

 

Jelenleg 155 tábla van, ebből kb. 120-130 éles. Ha az egészet kidumpolom és odaadom, az jó úgy? Mert attól félek, némi magyarázatra szorulna a dolog, de azt hogy oldjuk meg? Ahhoz már kéne valami privát beszélgetős hely.

---

Kidumpoltam, 127 tábla, 90K. Hogyan tovább? :hááát:

Posted

Elküldöd e-mailben/Dropbox? Mielőtt magyarázás lenne, úgyis meg kell néznem, miről is van szó. :)

Posted

Dropbox, jó ötlet! Hogy hívják a Dropbox useredet?

Posted

E-mailemet tudod, megtalálsz.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...