molily: Inhalt laden _ohne_ die gesamte Seite neu zu laden

Beitrag lesen

Hallo,

Jede Teamseite hat eigentlich drei Seiten!

  • Beschreibung
  • Karte
  • Bilder

Es scheint mir, das ist nicht viel Inhalt, sodass du ihn ohne Probleme auf einer Seite unterbringen kannst. Anfangs ist die Beschreibung sichtbar, beim Klick in der Navigation werden die anderen Inhalte eingeblendet. Ein Nachladen der Daten per Ajax ist wahrscheinlich nicht nötig.

Aufgerufen werden diese Punkt so

http://example.com/team/yael.html
http://example.com/team/karte/yael.html
http://example.com/team/bilder/yael.html

Ist es unbedingt nötig, dass diese drei separaten URL existieren?

Funktioniert auch wunderbar. Nun überlege ich mir ob es vielleicht sinnvoll wäre den „Conten-Bereich“ dynamisch laden zu lassen sprich ohne dass die Seite neu geladen wird.

Damit handelst du dir alle Probleme ein, die das Routing in Single-Page-Applications einbringt. Idealerweise musst du mit pushState und popstate arbeiten, damit die URL korrekt gesetzt und die Seite beim Betätigen des Back-Buttons wiederhergestellt wird.

Vorteil für mich:

  • weniger Dateien die ich anpassen muss wenn ich Änderungen am Design / Code habe.

Wenn sich die Inhalte ändern, ist es vertretbar, dass einzelne Dateien geändert werden müssen.

Wenn sich das Drumherum, also Dokument-Head, Header, Seitenleisten, Footer usw. ändern, sollten die einzelnen Dateien nicht geändert werden müssen. Das kann du mit Includes und einem PHP-seitigen Routing lösen.

Kurz: Dieses Problem solltest du anders lösen.

  • Ich habe nur eine PHP / MySQL Abfrage da alle Daten sich in der gleichen Seite befinden

Das spricht ebenfalls dafür, die Inhalte unter einer URL unterzubringen.

  • User bekommen den Inhalt schneller zu sehen, da kein kompletter Seitenbau getätigt werden muss.

Das lohnt sich erst, wenn es sich um große Mengen an Inhalt handelt.

Wenn nicht, dann sind die Inhalte sogar langsamer zugänglich, weil für jeden kleinen Teilinhalt ein Request gesendet werden muss. Der hat gerne einen Overhead von zwei Kilobyte. Auf Mobilgeräten kommen lange Latenzen hinzu.

Was ist wenn er kein Javascript zulässt? OK ich gehe davon aus, dass dieses nur sehr wenige User machen und die es machen die wissen was sie machen.

Selbst wenn du Inhalte mit Ajax nachlädst, sollten die Inhalte ohne JavaScript über eine URL normal zugänglich sein. Ohne JavaScript-Logik würde der Browser einfach die URL aus der Navigation öffnen, anstatt den Inhalt dynamisch nachzuladen.

Wenn du die Inhalte hingegen auf einer Seite unterbringst, dann besteht die Navigation nur aus Links innerhalb der Seite:

<a href="#foo">Foo</a>

Beim Klick wird mit JavaScript #foo gezeigt und fokussiert.

Siehe auch: http://9elements.com/io/index.php/hybrid-javascript-apps/

Ist es schwer dieses einzubauen?

Wenn man es richtig machen will: Ja.
Wenn man es quick’n’dirty macht: Nein.

Meine Kenntnisse in Javascript bzw. jQuery sind relativ klein.

Dann würde ich dir eher zur Einblenden-/Ausblenden-Lösung raten, anstatt zu Ajax.

Mathias