Hallo,
Ich habe jetzt einige Zeit im Internet danach recherchiert, aber keiner traut sich eine solche Frage zu stellen ;-)
Ist es prinzipiell möglich eine ausgelöste Web-Anforderung vor Erhalt der Antwort zu stornieren?
Also, der User löst durch einen Klick (o.ä.) in seinem Browser einen HTTP-Request auf dem Server aus,
der startet daraufhin einen evtl. aufwendigen CGI-Prozess.
Jetzt klickt der User irgendwo anders hin, braucht das Ergebnis also gar nicht.
Könnte man mittels Javascript den alten Request canceln und damit den Server entlasten?
Auch mit einer einfachen Anfrag nach HTTP, also einem simplem Link.
Das Problem liegt auf dem Server. Der CGI Prozess muß am User hängen (Session ID o.ä.), sodaß beim Klicken auf einen anderen Link (Da sollte es nicht viele andere geben, sonst wird's unübersichtlich und vor allem keine nach "draussen")
nur noch dafür Sorge getragen werden muß, daß der passende CGI Prozess gekillt wird.
Bringt natürlich nichts, wenn ganz abgebrochen, sprich: das Browserfenster geschlossen oder eine andere Adresse angesurft wird.
Aber wenn der CGI Prozess wirklich sehr aufwendig ist (Volltextsuche über eine riesige Datenbank o.ä.) sollte sich oben beschriebener Aufwand schon lohnen.
Zumindest läßt sich so ein "Abbrechen" Button leicht einbauen.
Ob der dann benutzt wird, ist natürlich wieder eine andere Frage ;-)
Gibt das HTTP-Protokoll so etwas her?
Direkt nicht.
so short
Christoph Zurnieden