Serverseitige Funktionen unbemerk ausführen
buergle
- programmiertechnik
Hallo,
möchte genne wissen, wie ich folgendes professioneller machen könnte:
Anforderung:
Ein User soll auf einen Button klicken, daraufhin soll ein Text in ein Textfeld geschrieben werden. Dabei darf die Seite nicht neu geladen werden o.ä. .
Außerdem soll der Text, der in das Textfeld geschrieben werden soll,
aus einer Datenbank ausgelesen werden, also serverseitig generiert werden.
Meine Umsetzung:
Nachdem der User auf den Button klickt, wird per Javascript ein neues Fenster geöffnet(window.open(...)) und zwar, um die Datei, in der die serverseitige Funktion enthalten ist, anzufordern.
(Die Datei bekommt zusätzlich ein paar Variablen mit übergeben, aber das nur nebenbei).
Damit der User nichts von dem window.open "merkt", zeige ich das neue Fenster klein und sehr weit ausserhalb eines üblichen Bildschirmes an (weit rechts unten).
Nach der serverseitigen Abarbeitung (z.b. Text aus DB lesen) generiert die serverseitige Funktion ein JavaScript, das dann -im Browser des Users- den ermittelten Text in das Textfeld im ursprünglichen Fenster schreibt. (Zugriff erfolgt über das
JS Opener-Objekt)
Ganz zum Schluss wird das "versteckte" Fenster, das geöffnet wurde, um die serverseitige Funktion zu durchlaufen, geschlossen.
Der User sieht somit nach Buttonklick als Resultat den Text aus der DB.
Ich finde diese (meine) Lösung sehr unsauber. Was meint ihr dazu?
Hat jemand eine bessere Idee?
Grüße, Buergle
Moin!
Ein User soll auf einen Button klicken, daraufhin soll ein Text in ein Textfeld geschrieben werden. Dabei darf die Seite nicht neu geladen werden o.ä. .
Außerdem soll der Text, der in das Textfeld geschrieben werden soll,
aus einer Datenbank ausgelesen werden, also serverseitig generiert werden.
Ist es notwendig, die Textgenerierung exakt im Moment des Buttonklicks zu realisieren, oder könntest du dir vorstellen, den Text schon mal auf Vorrat zu generieren, um ihn dann mit "javascript-only" nur noch in das Feld zu packen?
- Sven Rautenberg
Ist es notwendig, die Textgenerierung exakt im Moment des Buttonklicks zu realisieren, oder könntest du dir vorstellen, den Text schon mal auf Vorrat zu generieren, um ihn dann mit "javascript-only" nur noch in das Feld zu packen?
- Sven Rautenberg
Nein.
(...da in meinem Fall das ganze noch etwas komplizierter ist: Der User klickt genauer gesagt nacheinander 2 Punkte in einer Active-X Komponente an.
Sobald der zweite Punkt angeklickt wurde, soll anhand von Koordinaten, die aus einer DB stammen, der Abstand zwischen den beiden Punkten berechnet werden und dem User neben der Active-X-Komponente in einem Textfeld angezeigt werden. Die Active-X-Komponente liefert nur die ID zu den angeklickten Punkten, jedoch nicht die Koordinaten. Da es sehr sehr viele Punkte gibt (es geht um Vermessungspunkte eines Stadtteils), wäre es absurd, alle Koordinaten vorab auszulesen. Die Koordinaten sind nämlich jeweils in einem BLOB enthalten. Um diesen BLOB zu zerlegen, ist Visual Basic (in selbst gebastelter Wrapper-DLL) notwendig... das würde den Server extrem belasten... darum nein.)
Hello,
eigentlich ist für sowas die Kombi Frames + JavaScript bestens geeignet. Das zweite Frame machst Du so klein, dass man es nicht sieht. Außerdem holst du keine anzuzeigenden Komponeneten, sondern gleich den fertigen JavaScript Code, alse das neue Objekt. Und das weiß dann, wo es sich melden muss.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
eigentlich ist für sowas die Kombi Frames + JavaScript bestens geeignet. Das zweite Frame machst Du so klein, dass man es nicht sieht.
Hi:)
Hab ich mir auch mal überlegt, aber im Endeffekt ist das auch unsauber. Allerdings könnte der Vorteil in deiner Variante sein, dass User, die PopUp-Fenster blockieren, keine Probleme bekommen.
Grüße, Buergle
Hello,
Hab ich mir auch mal überlegt, aber im Endeffekt ist das auch unsauber. Allerdings könnte der Vorteil in deiner Variante sein, dass User, die PopUp-Fenster blockieren, keine Probleme bekommen.
So isses!
Liebe Grüße aus http://www.braunschweig.de
Tom
hi,
Ich finde diese (meine) Lösung sehr unsauber.
ich auch.
warum "darf" der user nicht merken, dass der text vom server geholt wird?
weiter oben schriebst du noch etwas von "professionell". wie du das mit solchen albernheiten in einklang bringen willst, ist mir allerdings ein rätsel.
gruß,
wahsaga
Damit der User nichts von dem window.open "merkt",
Ich würde es nicht versteckt öffnen sondern entweder, wie Tom schon schrieb, in einem unsichtbaren Frame oder - finde ich eher besser - in einem kleinen Fenster, daß ich genau zentriert öffne und in dem als einziges sichtbar ein Hinweis erscheint, daß die Daten berechnet werden. Ansonsten würde ichs machen wie Du.