Hallo,
am Besten ein einfaches Beispiel: ein CGI hat zwei Eingabefelder, Faktor 1, Faktor 2, einen Submit-Button und auf Klick wird das Produkt berechnet. Das CGI hat eingangs eine Kontrollstruktur, in welcher die Parameter abgefragt werden, für einen reinen CGI-Betrieb wird der Parameter 'berechne' abgefragt und im Ergebnis dessen die Seite/Template mit den richtigen Zahlen befüllt, neu zum Browser gesendet (f1, f2, produkt werden in die Seite eingebaut).
Ajax-Erweiterung: Es kommt der Parameter 'x_berechne' hinzu, bei diesem Parameter wird auch das Ergebnis berechnet, aber anstelle einer kompletten Seite wird nur das Ergebnis (f1=2, f2=3, produkt=6) zum Browser gesendet und in die bereits vorhandene Seite per DOM eingebaut. Soweit sogut.
Was auffällt: Die Berechnung des Produkts (abstrakt: Verarbeitung der Eingabe) wird in beiden Fällen fällig. Und nicht nur das: In beiden Fällen landet das Ergebnis (f1, f2, produkt) kurzzeitig in einunddemselben Objekt. Es könnte also auch so gemacht werden, dass es nur den einen Parameter 'berechne' gibt, das Objekt jedoch ein Flag bekommt (ajax=1 || ajax=0).
In Summa, Entscheidung ob der Response:
- anhand der Namen der Parameter (berechne, x_berechne)
- anhand eines Attributes/Flag im Objekt, was die Methode zur Response ruft
Frage nach der Best Practice und einem passenden Entwurfsmuster.
Danke im Vorab,
Hotti