ASP-Recordset in ein Javascript-Array (Client)
Alex
- asp.net
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?
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
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
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
: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.
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
: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.