Herbie: Request zum Server ohne User-Interaktion

Hallo,

ich hätte da gerne mal ein Problem....

Nach dem Click auf einen Link bekommt bei meiner Anwendung der User eine Liste angezeigt. Diese Liste wurde mit einem xsl aus einem XML-String ausgelesen und DANN ERST im xsl sortiert.

Nun soll ich es dem User ermöglichen, über ein zweites, externes Fenster in dieser Liste zu "blättern" - also mit Pfeiltasten-Clicks durch die Liste durchzugehen.

Wäre kein Problem, wenn ich auf dem Server die sortierte Liste beim ersten Click schon hätte - habe ich aber nicht...

Ich habe in dem XSl die IDs schon gesammelt und in ein String[] gepackt. Klickt der User nun aktiv innerhalb des Fensters mit der Liste, kann ich über den Request auf dem Server dieses Stringarray auslesen und habe die sortierte Liste. So weit, so gut...
Nun soll das Ganze aber über ein externes Fenster gehen - und zwar auch schon, bevor der User das erste Mal in der Liste irgendetwas angeklickt hat...

Wie kann ich also am Ende der Anzeige der Liste im XSL einen automatischen Request an den Server schicken, ohne dass der User irgendetwas dafür tun muss ?

Danke und Gruß,
Herbie

  1. Hej,

    ich hätte da gerne mal ein Problem....

    ... und ich bin mir nicht sicher ob ich es verstanden habe. :)

    Nach dem Click auf einen Link bekommt bei meiner Anwendung der User eine Liste angezeigt. Diese Liste wurde mit einem xsl aus einem XML-String 1ausgelesen und DANN ERST im xsl sortiert.

    Client- oder Serverseitig?

    Nun soll ich es dem User ermöglichen, über ein zweites, externes Fenster in dieser Liste zu "blättern" - also mit Pfeiltasten-Clicks durch die Liste durchzugehen.

    Wie öffnest du dieses zweite Fenster? Wenn es sich denn überhaupt öffnet, wir reden doch noch über eine html-Anwendung, oder?

    Wäre kein Problem, wenn ich auf dem Server die sortierte Liste beim ersten Click schon hätte - habe ich aber nicht...

    Nach welcher Regel sortierst du die Liste per XSL? Existiert die Liste (sortiert oder unsortiert) überhaupt zu irgendeinem Zeitpunkt auf dem Server?

    Ich habe in dem XSl die IDs schon gesammelt und in ein String[] gepackt. Klickt der User nun aktiv innerhalb des Fensters mit der Liste, kann ich über den Request auf dem Server dieses Stringarray auslesen und habe die sortierte Liste. So weit, so gut...
    Nun soll das Ganze aber über ein externes Fenster gehen - und zwar auch schon, bevor der User das erste Mal in der Liste irgendetwas angeklickt hat...

    Wie hat sich das "zweite Fenster" öffnen können bevor überhaupt der Request für das Erste gefeuert wurde?

    ... einen automatischen Request an den Server schicken, ohne dass der User irgendetwas dafür tun muss ?

    M.W. nur mit einer Ajax-Technik.

    Beste Grüße
    Biesterfeld

    --
    Art.1: Et es wie et es
    Art.2: Et kütt wie et kütt
    Art.3: Et hätt noch immer jot jejange
    Das Kölsche Grundgesetz
    1. Hallo Biesterfeld,

      Hej,

      ich hätte da gerne mal ein Problem....

      ... und ich bin mir nicht sicher ob ich es verstanden habe. :)

      das ist durchaus Teil des Problems....
      :-))

      Nach dem Click auf einen Link bekommt bei meiner Anwendung der User eine Liste angezeigt. Diese Liste wurde mit einem xsl aus einem XML-String 1ausgelesen und DANN ERST im xsl sortiert.

      Client- oder Serverseitig?

      Clientseitig.

      Nun soll ich es dem User ermöglichen, über ein zweites, externes Fenster in dieser Liste zu "blättern" - also mit Pfeiltasten-Clicks durch die Liste durchzugehen.

      Wie öffnest du dieses zweite Fenster? Wenn es sich denn überhaupt öffnet, wir reden doch noch über eine html-Anwendung, oder?

      Die Anwendung hat mehrere Frames. Im Ersten Frame ist ein Button zum Öffnen des "Blätternfensters" und zusätzlich ein Link, der dazu führt, dass im zweiten frame die zu dem link gehörende Liste angezeigt wird.
      Man kann also das Blättern fenster öffnen, bevor überhaupt eine Liste angezeigt wird.

      Wäre kein Problem, wenn ich auf dem Server die sortierte Liste beim ersten Click schon hätte - habe ich aber nicht...

      Nach welcher Regel sortierst du die Liste per XSL? Existiert die Liste (sortiert oder unsortiert) überhaupt zu irgendeinem Zeitpunkt auf dem Server?

      Das ist das Problem: Die Liste wird vom User auf dem Client durch anklicken der Spaltenüberschriften sortiert (nach Datum, Name, Nummer... usw.). Somit weiss der Server nicht, in welcher Reihenfolge die Einträge vorliegen.

      Ich habe in dem XSl die IDs schon gesammelt und in ein String[] gepackt. Klickt der User nun aktiv innerhalb des Fensters mit der Liste, kann ich über den Request auf dem Server dieses Stringarray auslesen und habe die sortierte Liste. So weit, so gut...
      Nun soll das Ganze aber über ein externes Fenster gehen - und zwar auch schon, bevor der User das erste Mal in der Liste irgendetwas angeklickt hat...

      Wie hat sich das "zweite Fenster" öffnen können bevor überhaupt der Request für das Erste gefeuert wurde?

      s.o.

      ... einen automatischen Request an den Server schicken, ohne dass der User irgendetwas dafür tun muss ?

      M.W. nur mit einer Ajax-Technik.

      hmmm... sagt mir nix. Muss ich mich mal mit beschäftigen. Ich habe jetzt am Ende der Liste ein Bild (1 Pixel in Hintergrundfarbe) eingefügt und mit onload="javascript:document.forms.form0.action='{$blaetternEventUrl}&sortedAllIds=blaettern';document.forms.form0.submit();" dafür gesorgt, dass die Liste zum Server kommt...
      Allerdings "zwinkert" er jetzt: Er baut das Bild auf, löscht alles und baut es neu auf (dadurch, dass er den Request schickt...).
      Kann ich mit Javascript irgendwie den Java-Befehl "request.getParameterValues("sortedids")" abbilden ? der liefert mir nämlich in Java meine Liste sortierter Elemente. Ich müsste also diese Liste per Javascript aus dem Document holen, ebenfalls per Javascript eine JavaKlasse auf dem Server aufrufen, die dann diese Liste für mich speichert (wobei nur dieser Teil für mich kein Problem ist...), OHNE dass dadurch die Seite neu aufgebaut wird...

      Geht das ?????
      :-)
      Herbie

      1. Hej Herbie,

        ich hätte da gerne mal ein Problem....

        ... und ich bin mir nicht sicher ob ich es verstanden habe. :)

        das ist durchaus Teil des Problems....
        :-))

        Belaste dich bitte nicht unnötig. Dass ich es nicht verstanden habe, ist gewiss nicht Teil deines Problems ,-)

        Nach dem Click auf einen Link bekommt bei meiner Anwendung der User eine Liste angezeigt. Diese Liste wurde mit einem xsl aus einem XML-String 1ausgelesen und DANN ERST im xsl sortiert.

        Client- oder Serverseitig?

        Clientseitig.

        Cool, ich wusste gar nicht, dass XSL inzwischen browserübergreifend unterstützt wird.

        Die Anwendung hat mehrere Frames. Im Ersten Frame ist ein Button zum Öffnen des "Blätternfensters" und zusätzlich ein Link, der dazu führt, dass im zweiten frame die zu dem link gehörende Liste angezeigt wird.
        Man kann also das Blättern fenster öffnen, bevor überhaupt eine Liste angezeigt wird.

        Das ist das Problem: Die Liste wird vom User auf dem Client durch anklicken der Spaltenüberschriften sortiert (nach Datum, Name, Nummer... usw.). Somit weiss der Server nicht, in welcher Reihenfolge die Einträge vorliegen.

        Wenn ich es richtig verstanden habe: In einem Frame (LF) wird eine Liste vom Server angefordert, die clientseitig sortiert wird. In dem anderen Frame (BF) eine Resource angefordert, die es ermöglicht durch die Liste zu blättern. Dein Problem ist aber, dass BF nichts von LF weiß.

        Ändere das!

        1. Möglichkeit (die dir bestimmt nicht gefallen wird) verzichte auf Frames und integriere die Möglichkeit durch die Liste zu klicken in die Resource, die die Liste anzeigt.

        2. Warum soll überhaupt die Möglichkeit bestehen schon durch die Liste zu blättern bevor sie überhaupt angezeigt wird?

        3. Muss LF zwingend erst clientseitig generiert werden? Du wirst schon einen Grund dafür haben, aber in anbetracht der Probleme die sich daraus ergeben, solltest du dir sicher sein, warum du diese Technik bevorzugst.

        ... einen automatischen Request an den Server schicken, ohne dass der User irgendetwas dafür tun muss ?

        M.W. nur mit einer Ajax-Technik.

        Kann ich mit Javascript irgendwie den Java-Befehl "request.getParameterValues("sortedids")" abbilden ?

        Vielleicht nicht genau so aber das ist exakt die Idee von Ajax. Nämlich Client-Server-Kommunikation ohne immer eine vollständig, neue Seite anfordern zu müssen. Bedenke aber bitte, dass Ajax u.U. ressourcen-hungrig sein kann und es nur funktioniert wenn der Client auch Javascript aktiviert hat. Ich persönlich steh der Technik etwas skeptisch gegenüber und bin halt der Meinung, dass man sich sicher sein sollte ein Vorhaben nicht anders realisieren zu können, bevor es zum Einsatz kommt.

        Im Zusammenspiel von Ajax und Tomcat dürfte dich dies her wahrscheinlich interessieren: http://www-128.ibm.com/developerworks/edu/wa-dw-wa-ajax-i.html

        Beste Grüße
        Biesterfeld

        --
        Art.1: Et es wie et es
        Art.2: Et kütt wie et kütt
        Art.3: Et hätt noch immer jot jejange
        Das Kölsche Grundgesetz
        1. Hallo Biesterfeld,

          herzlichen Dank für die Antworten.
          Ich werde mich mal mit AJAX beschäftigen müssen, denke ich...

          Also: Danke und Grüße,
          Herbie