2008-09-11 15 views
3

Ich habe ein sehr großes kaskadierendes Menüsystem mit über 300 Elementen darin. (Ich weiß, es ist groß, aber es ist eine Voraussetzung.)
Derzeit ist es in Javascript geschrieben, so dass die externe Datei von Browsern zwischengespeichert wird.Wie kann ein Menüsystem am besten lokal im Browser zwischengespeichert werden?

Um Suchmaschinen-Ergebnisse zu verbessern, muss ich dies zu einem CSS-Menüsystem konvertieren.
Ich habe auch bewusst der Browser externe Stylesheets zwischengespeichert werden, aber

  • ist es eine Möglichkeit, den Menüinhalt (<ul> und <li> Tags) cachen?

Wenn ich Javascript verwenden (document.write), um den Inhalt zu schreiben ich dies in einer externen haben könnte Javascript-Datei, die lokal im Cache gespeichert werden würde, aber,

  • würde diese Suchmaschine freundlich sein?

Was ist die beste Lösung?

Antwort

6

Der beste Weg, um das zu erreichen, was Sie tun möchten, ist die Verwendung von SiteMaps, um Google über die URLs für Ihre Website zu informieren. Grundsätzlich möchten Sie Ihre hierarchischen Daten für die Menüs in eine SiteMap übersetzen.

0

Sie könnten die Menüs im Voraus in statische html/javascript-Dateien erstellen und alle Seiten dazu bringen, die Website von derselben URL auf Ihrer Website zu beziehen. Auf diese Weise führt der clientseitige Browser das Caching durch. Sie müssen nur einen Schritt in Ihrer Bereitstellung haben, der die HTML-Dateien für das Menü generiert.

Versuchen Sie, so viel plain HTML (+ JS + CSS) wie möglich zu erzeugen, dann kann alles, was dynamisch sein muss, mit Javascript angepasst werden.

0

Sie könnten das Ganze nur in CSS und HTML machen, und Sie brauchen kein Java-Skript. Siehe < http://www.netwiz.com.au/cssmenu.htmlvalue>. Diese Seite zeigt ein Tool, das mit einer bestimmten Dokumentationssoftware verwendet werden kann, aber das Beispiel CSS und HTML zeigt, wie ul li-Elemente für ein CSS/HTML-Only-Menü in einer großen Anzahl von Browsern verwendet werden.

Sie haben immer noch das Problem von 300 Elementen im Menü, die die Ladezeit erhöhen. Wenn dies ein Problem ist, können Sie diesen Code möglicherweise in einen separaten Iframe verschieben, um die Wahrscheinlichkeit zu erhöhen, dass er in einem Proxy (oder im Browser) zwischengespeichert wird. Auf die Gefahr hin, die Puristen zu beleidigen, könnte sogar ein Rahmen die Aufgabe übernehmen, aber Sie werden Probleme haben, wenn die Themenseiten das Menü nicht anzeigen können, wenn sie direkt verknüpft sind.