Felix Riesterer: Codeverbesserung (?)

Beitrag lesen

Lieber Paul,

wie passt "index.php?page=1234" mit

PS: keine serverseitige Möglichkeit

zusammen??

Meines Erachtens ist diese ?page=1234-URL-Geschichte keine besonders suchmaschinenfreundliche Lösung. Nach meiner Erfahrung ist es sinnvoller, eine "sprechende URL" zu haben, die intern dann z.B. mittels mod_rewrite in Deinen page-Parameter umgewandelt wird. Oder Du machst es eben noch anders.

var links = new Array(

'toller Link?page=279',
      'noch tollerer Link?page=291',
      'naja?page=280',
      'letzter Link?page=5'
    );

  
Warum die Links nicht als Objekt?  
  
~~~javascript
var l = [  
    { name: "toller Link",        page: 279 },  
    { name: "noch tollerer Link", page: 291 },  
    { name: "naja",               page: 280 },  
    { name: "letzter Link",       page: 5 }  
];

Du kannst dann diesen Code

~~~javascript

var a = parseInt(Math.random() * links.length);

var link = links[a].split("?");

document.getElementById('intLink').innerHTML = link[0];
    document.getElementById('intLink').href = 'index.php?'+link[1];

dadurch ersetzen:  
  
~~~javascript
var a = Math.floor(Math.random() * l.length);  
var lnk = document.getElementById("intLink");  
  
lnk.innerHTML = l[a].name;  
lnk.href = "index.php?page=" + l[a].page;

Wie man mit Zufallszahlen umgeht, steht bei SELFHTML: Gleichverteilte Zufallszahlen erzeugen.

Die Variablennamen "link" und "links" sind meines Wissens nicht unproblematische Namen, die Du in Deinem Code besser nicht als lokale Variablennamen deklarieren sollest. Ich kenne jetzt zwar kein Beispiel, aber das Syntaxhighlighting zeigt "link" oder "links" mit einer anderen Farbe an, als beispielsweise "l" oder "a".

Auch wenn Dein Code grundsätzlich stabil funktioniert, so würde ich mir doch in Sachen Erweiterbarkeit die Notation mit Objekte-in-einem-Array angewöhnen, damit eine solche Linkliste vielleicht einmal später als nachladbares JavaScript per PHP generiert werden kann.

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)