2015. december 17., csütörtök

Fájlgenerálás végeztének kezelése JS-ben

Előfordulnak olyan helyzetek, mikor egy online felületen, egy formon megadhatunk keresési paramétereket, majd az eredményt rögtön letöltve szeretnénk megkapni. Ilyenkor célszerű addig letiltani gombot, amíg dolgozik a rendszer. Ezzel elkerülhető, hogy a hosszú várakozási idő alatt többször rányomjon a felhasználó. Hiszen az ő szemében "már bezárta a böngészőt, tehát befejezte a műveletet", attól a szerver még végigcsinálja a feladatot.

JavaScriptben nincs egységes módszer, vagy esemény, vagy bármi arra, hogy mikor mondhatnánk azt, hogy most már lehet engedélyezni a gombot. Viszont van egy elfogadhatóan jó kerülő megoldás: tegyünk bele a sütibe egy tokent, amikor a kiszolgáló visszaküldi a választ és benne a letöltendő fájlt, és figyeljük JS-ből ezt a tokent, hogy elérhető-e már.

Az alábbi linken a UI blokkolásához a JQuery Block UI plugint használják, ami természetesen cserélhető/kihagyható az aktuális feladattól függően. A linken üríti a sütit egy külső JQuery pluginnel, ami tartalmazza a $.cookie-t. Erre azonban nincs szükség, hiszen minden gombnyomásnál új tokent generálunk és addig vizsgálódunk, amíg meg nem érkezik a token. Emiatt nem gond, hogy ha benne marad a token a régi értékkel olyankor, amikor amúgy sem várunk semmire sem.

http://gruffcode.com/2010/10/28/detecting-the-file-download-dialog-in-the-browser/

Nincsenek megjegyzések:

Megjegyzés küldése