Hallo,
Da habe ich absichtlich ein bisschen provoziert, um mehr Informationen zu bekommen, was ja auch geklappt hat.
okay, wenn du das immer so machst...
Nicht immer, aber wegen
ps: "lern javascript", "lass sowas" oder dergleichen sind antworten die man sich sparen kann.
nahm ich an, dass darunter auch Fragen wie "wozu?" und "was soll das überhaupt?" fallen. Also musste ich ein wenig tricksen, um dich aus der reserve zu locken :-).
var wasteLinks = [
"www.mir-ist-langweilig.de",
"www.jetzt-dreht-er-durch.de"
];ah, so sehen also JS-arrays aus? na das krieg ich noch hin.
Na also. Sie sehen nicht immer so aus, z.B. sind die Zeilenumbrüche unnötig, und man könnte statt dessen auch schreiben:
var wasteLinks = new Array("www.mir-ist-langweilig.de", "www.jetzt-dreht-er-durch.de");
hm, aber auch bei einer JS-datei mit mehreren tausend zeilen dürfte die größe doch nur eine handvoll kb betragen - was sich dann auch entsprechend auf den traffic auswirken würde.
Naja, rechne mal: "http://" hat schon 7 zeichen, mit "www." wären es dann schon 11, plus die eigentliche Adressse mit sagen wir mal im Schnitt so 20 Zeichen plus Anführungszeichen, Komma, Zeilenende macht so pi mal Daumen 30 Zeichen * 2000 Zeilen = 60kb. Ist heutzutage nicht wirklich viel mit DSL oder so, aber immerhin. Dazu kommt ja noch der ganze Rest deiner Seite, sicher jede Menge unkomprimierter Bilder und und und ;-).
aber warum wird das langsam?
wenn die seite aber einmal im browser geladen ist sollte der rest doch kaum noch zeit beanspruchen, oder was versteh ich da schon wieder falsch?
Nein, das ist schon richtig. Wenn die Liste einmal geladen ist, geht es nachher schnell. Allerdings ist es doch so: Wenn ein Link angeklickt wird, verschwindet deine Seite vom Schirm zugunsten der angeklickten, und muss nachher evtl. trotzdem neu geladen werden. Oder willst du fremde Seiten in ein Frameset laden oder gar laufend neue Fenster öffnen (Horror!)?
var zufallsLink = wasteLinks[ Math.floor( Math.random() * (wasteLinks.Length+1) )];
Vergiss das +1, da hab' ich mich vertan. Siehe die Diskussion mit Gunnar.
Es gibt bessere Techniken, aber da du javascript nicht lernen willst, kann man nicht erwarten, dass du dich mit AJAX oder so beschäftigen willst.
ach, ich nehm auch eine andere lösung, ich bin da nicht wählerisch ;)
AJAX *ist* javascript, genauer gesagt eine Technik, bei der javascript im Spiel ist. Dafür sollte man aber schon ein bisschen javascript können, und serverseitig muss das auch unterstützt werden.
grundsatzfrage: wie kann eine AJAX-umsetzung meines anliegens schneller oder traffic-sparender sein als eine JS-variante? die zu übertragenden daten sind doch in jedem fall die selben, die auszuführenden funktionen nahezu identisch...? also, vermute ich jedenfalls.
Nein, mit AJAX könntest du jeweils eine zufällige Adresse vom Server holen, ohne vorher alle geladen zu haben und auch ohne die ganze Seite neu zu laden. Beim Klick nur kurz eine neue Adresse abholen, fertig.
btw: es ist mit JS nicht möglich nur nach dem drücken eines buttons eine verbindung zum server herzustellen, auf die linkliste zuzugreifen und daraus einen herauszupicken? sowas hatte ich eigentlich gehofft...
Genau, mit AJAX. Braucht auch javascript.
Gruß, Don P