Utilizatorul da click pe un buton. Se executa ceva care dureaza cateva secunde.
Utilizatorul ar trebui sa nu mai dea click (sau sa nu se mai execute nimic chiar daca da click) in aceste cateva secunde.
Voi cum abordati aceasta problema? Ma gandesc ca am doua optiuni:
1. Dupa ce da click sa inactivez butonul si numai dupa sfarsitul procesarii sa-l reactivez (daca mai e cazul).
2. Sa memorez intr-o variabila faptul ca a dat click si in functie de aceasta variabila la al doilea click sa fie sau nu procesata actiunea in functie daca s-a terminat executia de la primul click.
Voi cam cum faceti? Avantaje, dezavantaje?
PS: de exemplu, se completeaza un formular, se da click pe "salvare date", informatiile sunt transmise prin ajax la server, peste cateva secunde vine raspunsul. In acest timp utilizatorul trebuie sa nu mai poata sa dea click pe "salvare date" inca o data (sau daca da click sa nu se mai proceseze comanda inca odata).
evitarea re-executiei JavaScript
Moderatori: eyecon, Moderatori
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
Re: evitarea re-executiei JavaScript
Cod: Selectaţi tot
var busy = false;
function sendInfos() {
if( busy ) {
return false;
}
busy = true;
// $('#loadingBox').show();
$.post('adr', { params }, function() {
// do stuff
busy = false;
// $('#loadingBox').hide();
});
return false;
}
$('#clickableButt').click(function(){ return sendInfos(); });
Re: evitarea re-executiei JavaScript
Adica varianta 2. Asta nu prea imi place, insemna sa poluez spatiul global.... plus ca risc sa incarc un fisier care sa-mi suprascrie variabila. Dar este totusi o metoda al carui risc de eroare e relativ foarte mic.
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
Re: evitarea re-executiei JavaScript
Stai putin, sa inteleg mai bine, tu esti un programator care nu adauga
variabile noi de teama sa nu le rescrie pe altele Tare asta!
Faza cu "dezactivat butonul" functioneaza doar daca ai butoane de form,
nu si pentru link-uri, ceea ce e un mic dezavantaj.
variabile noi de teama sa nu le rescrie pe altele Tare asta!
Faza cu "dezactivat butonul" functioneaza doar daca ai butoane de form,
nu si pentru link-uri, ceea ce e un mic dezavantaj.
Re: evitarea re-executiei JavaScript
Incerc sa fiu genul ala de programator, dar nu ma ridic la nivelul dorit.
Re: evitarea re-executiei JavaScript
Daca te doare sufletul ca busy e global introdu-l in sendInfos (asta oricum e global).
Cod: Selectaţi tot
function sendInfos() {
if (sendInfos.busy) {
return;
}
}
sendInfos.busy = false;
Înapoi la “HTML/JavaScript/CSS”
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 33 vizitatori