Refresh ohne auf der Startseite zu landen...

Darian

Erfahrenes Mitglied
Hallo Leute,

gibt da sicher ein paar einfache Lösungen dazu, habe aber noch nichts gefunden.

Ich probiere gerade jquery aus, und will aber nicht dass bei einem F5(Refresh) immer wieder die Startseite erscheint, sondern die selbe Seite bleibt.

Ich lade einfach mit jquery die unterschiedlichen Seiten in den die div mit der id="content".

Wie könnte ich das lösen?

Meine Seite ist auch mit domain?site=irgendwas richtig erreichbar, habe da ein wenig mit php getrickst, jetzt frage ich mich aber wie man das sauber machen kann.

lg und thx für eventuelle Infos
Darian
 
Moin Darian,

eine denkbare Lösung wäre folgende:
Wenn der Benutzer etwas "lädt", dann müsstest du es irgendwo "speichern", wo es nach F5 verfügbar ist.

Eine Variante wären da Cookies, das birgt aber Probleme in sich, wenn man mehrere Fenster/Tabs auf hat, bei denen das funktionieren soll.

Andere Variante: die Adresse ändern(ohne die Seite neu zu laden natürlich).
Da bietet sich der Anker an.

Also: wenn etwas geladen wird, das irgendwie im Anker speichern(geht in JS über location.hash )....und beim neuladen gucken, ob da ein Anker in der URL steht, und das passende dazuladen.

Ich hoffe das war einigermassen verständlich :-(
 
Hi,

Andere Variante: die Adresse ändern(ohne die Seite neu zu laden natürlich).
Da bietet sich der Anker an.

Also: wenn etwas geladen wird, das irgendwie im Anker speichern(geht in JS über location.hash )....und beim neuladen gucken, ob da ein Anker in der URL steht, und das passende dazuladen.

Coole Idee. So kann man sogar Bookmarks setzen. ;)

LG
 
Jo, das geht natürlich auch :)

Bevor ich es aber vergesse:
Weil es immer Leute gibt, die Unsinn ausprobieren, wäre es unbedingt zu empfehlen, die "erlaubten" Seiten, welche auf diese Art geladen werden, irgendwo zu hinterlegen...so dass man nicht ungeprüft irgendwas in die Elternseite hineinlädt.
 
Ja cool cool, das würde doch ein paar Probleme lösen.

Das mit den Ankern klingt sehr viel versprechend, muss ich mal ausprobieren.

Aber google kann damit trotzdem nicht umgehen oder?

lg Darian

P.S.: Gibt es dazu auch schon Lösungsansätze innerhalb jquery, die werden sich ja sicher auch schon Gedanken darüber gemacht haben?
 
Hi,

Galileo Computing zeigt in einem OpenBook anhand von Bookmarks und einer Zurück-Schaltfläche, wie die "hash-Technik" eingesetzt werden kann.

Ciao
Quaese
 
Aber google kann damit trotzdem nicht umgehen oder?

Das käme darauf an, wie die Links gestaltet sind.
Generell sollte der bevorzugte Weg ja so sein:
Man erstellt die Seite so, dass sie komplett ohne JS begehbar ist, nimmt also ganz normale Links mit existierenden Zielen.

Beispiel:
Du hast eine index.php, und darin einen Link zu einer Seite namens impressum.php...ohne JS klickt man auf den Link, landet auf der impressum.php und fertig...damit kann Google umgehen.

Die AJAX-Features implementiert man danach(du könnstest bspw. alle zu manipulierenden Links mit einem speziellen Klassennamen versehen, um sie leichter ausfindig zu Machen).

Deine Anwendung findet also den Link zur impressum.php:
  1. Sie entfernt den speziellen Klassennamen(warum, sag ich später)
  2. Sie weist dem onclick-Event des Links eine Funktion zu, die
    1. Die normale Link-Aktion cancelt(per return false)
    2. Den Request durchführt anhand des Linkzieles
    3. Den Anker entsprechend anpasst
Der Request selbst:
Dort solltest du einen Parameter mitgeben, an dem das Ziel erkennt, dass die Anfrage per AJAX kam...damit nicht die ganze Seite, sondern nur der eigentliche Inhalt ausgegeben wird, den du später in das <div> laden willst(tu das am besten per POST, damit der Browser das nicht irgendwie in der History abspeichert)

Zum entfernen der Klassennamen: wenn Inhalt in das <div> geladen wird, könnte es weitere zu manipulierende Links enthalten, du müsstest also die Möglichkeit haben, (nur) neu hinzugekommende Links wieder anzupassen.

Anstatt beim onload gleich alle Links zu bearbeiten, könntest du dies auch über live() tun.
Das würde das Entfernen des Klassennamens ersparen, und später hinzukommende Links automatisch beachten.
 
Hallo und thx für die Infos. Ist aber teilweise für mich schon ein bisschen kompliziert, werde mich mehr damit auseinandersetzen müssen.

Anfangen werde ich wohl mit dem Openbook von Galileo.

Vorerst aber einmal danke.

lg Darian
 

Neue Beiträge

Zurück