Web: Doppelte Submits vermeiden
November 30th, 2007 von
Sven
Webanwendung finden aufgrund bestimmter Threadbedingter Nebenläufigkeiten doppelte Anfrage innerhalb der gleichen User Session oftmals nicht so toll. Um das zu unterdrücken, gibt es Serverseitig Techniken, um das abzufange. Für den Fall, daß diese versagen, bleibt nichts anderes übrig, als dies clientseitig zu realisieren (und zu hoffen, daß der User JavaScript aktiviert hat):
JavaScript:
-
submitted = false;
-
initialized=false;
-
document.onclick=init;
-
-
function init()
-
{
-
if(!initialized)
-
{
-
document.forms[0].onsubmit=disableSubmit; //hier wird der Eventlistener am ersten Formular der Seite registriert
-
initialized=true;
-
}
-
}
-
-
function disableSubmit()
-
{
-
if(submitted)
-
{
-
return false;
-
}
-
submitted=true;
-
}
Sobald nun ein Request per Submit abgesendet worden ist, ist kein weiterer möglich, bis der Response da ist.
Getestet wurde das Skript unter Firefox 2.0 und IE 6.0.
Geschrieben in javascript |