Alex: ASP-Recordset in ein Javascript-Array (Client)

Hallo Leute,

ich habe das Problem, dass ich aus einem ASP Recordset ein JS Array für DHTML brauche. Momentan löse ich dies so, dass ich eine VBScript Schleife generiere und die Werte in die HTML-Seite als String an JS übergebe.

Bsp:

var dasArray = new Array("ID", "Name", "Beschreibung", "Abk", "Mitarbeiterzahl","Color1","Color2");
 dasArray["ID"]= new Array();
 dasArray ["Name"]= new Array();
 dasArray ["Beschreibung"]= new Array();
 dasArray ["Abk"]= new Array();
 dasArray ["Mitarbeiterzahl"]= new Array();
 dasArray ["Color1"]= new Array();
 dasArray ["Color2"]= new Array();

<%
 Dim RS_Count
   RS_Count =0
 While NOT RS.EOF
 %>
dasArray ["ID"][<%=RS_Count%>]= "<%=( RS.Fields.Item("index").Value)%>";
dasArray ["Name"][<%= RS_Count %>]= "<%=( RS.Fields.Item("Mitarbeiterruppe").Value)%>";
dasArray ["Beschreibung"][<%= RS_Count %>]= "<%=( RS.Fields.Item("Beschreibung").Value)%>";
dasArray ["Abk"][<%= RS_Count %>]= "<%=( RS.Fields.Item("Abk").Value)%>";
dasArray ["Mitarbeiterzahl"][<%= RS_Count %>]= "<%=( RS.Fields.Item("Mitarbeiterzahl").Value)%>";
dasArray ["Color1"][<%= RS_Count %>]= "<%=( RS.Fields.Item("Color1").Value)%>";
dasArray ["Color2"][<%= RS_Count %>]= "<%=(RS.Fields.Item("Color2").Value)%>";
<%
 RS_Count = RS_Count +1
 RS.MoveNext()
 Wend
%>

Bei vielen Datensätzen ist die jedoch sehr nachteilig für die geschwindigkeit.

Hat jemand eien Idee, wie ein VBScript Recordset (Serverseitig) oder VBScript Array (Serverseitig) an JS (Clientseitig) in "einem Stück" übergeben wird?

  1. Halihallo Alex

    Bei vielen Datensätzen ist die jedoch sehr nachteilig für die geschwindigkeit.
    Hat jemand eien Idee, wie ein VBScript Recordset (Serverseitig) oder VBScript Array (Serverseitig) an JS (Clientseitig) in "einem Stück" übergeben wird?

    Nachteilig für die Geschwindigkeit ist wohl nur die Datenmenge der Übertragung, oder?
    Diese lässt sich nur bedingt verkleinern. Zum einen durch kürzere Variablennamen, zum
    anderen durch Kompression (welche wiederum zur Dekompression Performance verbraucht).
    Aus dieser Sicht lässt sich dein Vorhanben nicht grossartig verbessern.
    Die einzig vernünftige Lösung (die von der Aufgabenstellung abhängt) ist, nicht alle
    Daten zu übertragen (nur unmittelbar benötigte?), oder vollkommen ohne JS auszukommen.
    Was ich mir noch vorstellen könnte, wäre eine Art Dateninsel, wo die Daten eingelesen
    werden, das Arbeiten mit bereits empfangenen Daten jedoch bereits begonnen werden könnte
    (=> Frames? - Ein Content- und ein Datenframe).

    Viele Grüsse

    Philipp

    1. Hallo Philipp,

      Diese Daten sind schon in einem unsichtbareb IFrame gecasht.
      Nachteilig ist die Art der Verarbeitung der Daten (über den Umweg HTML). Könnte ich das Array auf dem Server erzeugen und es dann als Objekt übergeben, so ist( meine Einschätzung), dass vorteilhaft für die Performance. Dazu müsste es eine Script-Sprache mit Server-Client Interface geben.

      Gibt es sowas ???

      PS: mit JScript (Server/Client) geht es nicht.

      MfG
      Alex

      1. Halihallo Alex

        Diese Daten sind schon in einem unsichtbareb IFrame gecasht.
        Nachteilig ist die Art der Verarbeitung der Daten (über den Umweg HTML). Könnte ich das Array auf dem Server erzeugen und es dann als Objekt übergeben, so ist( meine Einschätzung), dass vorteilhaft für die Performance. Dazu müsste es eine Script-Sprache mit Server-Client Interface geben.

        IMHO nein. Zumindest keine mir bekannte allgemein Nutzbare. Evtl, indem du die src des
        IFrames dynamisch änderst und so der Serverprogrammiersprache einen Parameter übergibtst,
        welche Daten du clientseitig benötigst; ob das aus Sicht der Performance Sinn macht,
        oder ob die Kommunikation nicht durch Browser-/Cachingspezifische Einflüsse gefälscht
        werden ist fraglich.

        Viele Grüsse

        Philipp

        1. :IMHO nein. Zumindest keine mir bekannte allgemein Nutzbare. Evtl, :indem du die src des
          :IFrames dynamisch änderst und so der Serverprogrammiersprache einen Parameter übergibtst,
          :welche Daten du clientseitig benötigst; ob das aus Sicht der Performance Sinn macht,
          :oder ob die Kommunikation nicht durch Browser-/Cachingspezifische Einflüsse gefälscht
          :werden ist fraglich.

          Bei der src ist das Problem die Länge: ich kann halt nicht komplette Datenbanken über die src transportieren. Ein Applet/Servlet ist da vieleicht die Lösung des Problems. Aber wie bekomme ich dann die daten aus dem Applet in Javascript, den das brauche ich für DHTML.

          1. Halihallo Alex

            Bei der src ist das Problem die Länge: ich kann halt nicht komplette Datenbanken über die src transportieren.

            Hu. Ha. Nein, nicht die Daten über die src transportieren, sondern dem Serverscript
            mitteilen, welche Daten du willst. Das Script antwortet mit neuem JS-Code, den du
            einlesen kannst.

            Ein Applet/Servlet ist da vieleicht die Lösung des Problems. Aber wie bekomme ich dann die daten aus dem Applet in Javascript, den das brauche ich für DHTML.

            Da muss ich passen, glaube jedoch kaum, dass du Daten aus dem Applet Namespace in JS
            importieren kannst; aber da müssen die "Spezialisten" antworten; vielleicht springen
            die beim neuen Subject an.

            Viele Grüsse

            Philipp

            1. :Hu. Ha. Nein, nicht die Daten über die src transportieren, sondern dem Serverscript
              :mitteilen, welche Daten du willst. Das Script antwortet mit neuem JS-Code, den du
              :einlesen kannst.
              :Philipp

              Das mache ich momentan ja so ich hole mir nur die Daten die ich brauche. Das dauert aber zu lange.