gruss TS,
fuer den grossteil der javascript-objekte wie z.b.
Object, Array, RegExp, String, Number und Boolean
ist es moeglich, bei der objekt-definition sowohl
den objekt-konstruktor als auch das entsprechende
objekt-literal heranzuziehen - bsp.:
var x = new Object(); // bzw.: var x = {};
var x = new Array(); // bzw.: var x = [];
var regX = /\s+/g; // bzw.: var regX = new RegExp("\s","g");
var x = "12345"; // bzw.: var x = new String(12345);
...
...
Dein beispiel schreit geradezu nach verwendung von literal-notationen:
var bookmarks = { /* schreibweise: Object-literal - als "*.js"-file speichern */
"Beschreibung_1" : {
url : "http://www.URL_1.de",
par : "Parameter_1"
},
"Beschreibung_2" : {
url : "http://www.URL_2.de",
par : "Parameter_2"
},
/*
...
*/
"Beschreibung_N" : {
url:"http://www.URL_N.de",
par:"Parameter_N"
}
};
// auszulesen ueber:
function readStructure() {
var description, locator, parameter;
for (description in bookmarks) {
locator = bookmarks[description].url;
parameter = bookmarks[description].par;
/*
hier mit den daten arbeiten;
*/
}
}
// vorteil : bleiben die namen der schluessel erhalten,
// kann die struktur nachtraeglich ohne
// komplikationen geaendert werden;
//
// nachteil : die schreibweise eines reinen Array-literals
// ist noch kuerzer als die eben im beispiel
// verwendete eines Object-literals;
oder
var bookmarks = [ /* schreibweise Array-literal - als "*.js"-file speichern */
["http://www.URL_1.de","Beschreibung_1","Parameter_1"],
["http://www.URL_2.de","Beschreibung_2","Parameter_2"],
/*
...
*/
["http://www.URL_N.de","Beschreibung_N","Parameter_N"]
];
// auszulesen ueber:
function readStructure() {
var i, loc, des, par;
for (i=0; i<bookmarks.length; i++) {
loc = bookmarks[i][0];
des = bookmarks[i][1];
par = bookmarks[i][2];
/*
hier mit den daten arbeiten;
*/
}
}
// vorteil : ultrakurze schreibweise einer js-array-struktur;
//
// nachteil : aenderungen innerhalb der datenstruktur ziehen
// immer eine aenderung des diese strukur lesenden
// prozesses nach sich (in diesem bsp. ist der
// aufwand zum umschreiben vernachlaessigbar);
Es kommt dabei stark auf die Ladezeiten an. Also soll die Datenmenge möglichst klein sein.
Ich dachte mir deshalb eine Struktur in der externen Datei à la:|http://www.URL_1.de/|Beschreibung_1|Parameter_1|
|http://www.URL_2.de/|Beschreibung_2|Parameter_2|
.
.
.
|http://www.URL_n.de/|Beschreibung_n|Parameter_n|
nimm die zuletzt vorgeschlagene variante zur loesung Deines problems:
// "bookmarks.js"
var bookmarks = [
["http://www.URL_1.de","Beschreibung_1","Parameter_1"],
["http://www.URL_2.de","Beschreibung_2","Parameter_2"],
/*
...
*/
["http://www.URL_N.de","Beschreibung_N","Parameter_N"]];
die beiden tests, die ich mit jeweils 1000 dieser zeilen
var bookmarks = [
["http://www.URL_1-URL_1-URL_1-URL_1.de","Beschreibung_1,Beschreibung_1,Beschreibung_1,Beschreibung_1","Parameter_1"],
/* 998 weitere */
["http://www.URL_1-URL_1-URL_1-URL_1.de","Beschreibung_1,Beschreibung_1,Beschreibung_1,Beschreibung_1","Parameter_1"]];
bzw.
var bookmarks = {
"Beschreibung_1,Beschreibung_1,Beschreibung_1,Beschreibung_1":{url:"http://www.URL_1-URL_1-URL_1-URL_1.de",par:"Parameter_1"},
/* 998 weitere */
"Beschreibung_1,Beschreibung_1,Beschreibung_1,Beschreibung_1":{url:"http://www.URL_1-URL_1-URL_1-URL_1.de",par:"Parameter_1"}];
durchfuehrte, kommen auf 117.21 kByte fuer die Array-notation bzw. auf 125.02 kByte fuer die Object-notation;
viel erfolg und by(t)e by(t)e - peterS. - pseliger@gmx.net
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)