Contao-Camp 2024
Ergebnis 1 bis 7 von 7

Thema: Seiteninhalt mit Ajax laden

  1. #1
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard Seiteninhalt mit Ajax laden

    Bei dieser Seite hier https://brewsandgrooves.com werden die Seiteninhalte mit Ajax* geladen.
    D.h. wenn man das Menü rechts oben benutzt, wird bei einem Seitenaufruf nur der Inhaltsbereich ersetzt/geladen.

    Das sieht sehr elegant und smooooth aus

    Wie würdet ihr sowas in Contao realisieren?

    Danke für eure Tipps

    * zumindest vermute ich das

  2. #2
    Contao-Nutzer Avatar von BennyBorn
    Registriert seit
    10.06.2011.
    Ort
    Edenkoben
    Beiträge
    239
    Partner-ID
    6916

    Standard

    Ich glaub ich versteh die Frage nicht ganz. Wie würde man es in Contao machen? Genauso?!
    Response per AJAX holen, Content austauschen, URL per pushState anpassen

  3. #3
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.686
    User beschenken
    Wunschliste

    Standard

    man kann das Ajax auch mit einem preloader "simulieren" - z. B. https://unique.contao-themes-shop.de/

  4. #4
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard

    Zitat Zitat von BennyBorn Beitrag anzeigen
    Ich glaub ich versteh die Frage nicht ganz. Wie würde man es in Contao machen? Genauso?!
    Response per AJAX holen, Content austauschen, URL per pushState anpassen
    Ok, danke schon mal, d.h. so in der Art:

    Code:
    // bei einem Klick auf einen Menüeintrag folgendes ausführen:
    $( "#content" ).load( "kontakt.html div#content" );
    
    // und dann die URL anpassen (den ersten Parameter versteht ich nicht ganz):
    window.history.pushState("object or string", "Kontakt", "/kontakt.html");
    ... ich hole mir den gesamten Inhalt der Seite und "filtere" dann den Content-Bereich mit JS heraus.
    Gibts eine Möglichkeit dass ich gleich nur den Content per Ajax reinhole?

  5. #5
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.328
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao
    Geändert von lucina (30.09.2020 um 15:16 Uhr)

  6. #6
    Contao-Nutzer Avatar von BennyBorn
    Registriert seit
    10.06.2011.
    Ort
    Edenkoben
    Beiträge
    239
    Partner-ID
    6916

    Standard

    Zitat Zitat von thesweetg Beitrag anzeigen
    Ok, danke schon mal, d.h. so in der Art:

    Code:
    // bei einem Klick auf einen Menüeintrag folgendes ausführen:
    $( "#content" ).load( "kontakt.html div#content" );
    
    // und dann die URL anpassen (den ersten Parameter versteht ich nicht ganz):
    window.history.pushState("object or string", "Kontakt", "/kontakt.html");
    ... ich hole mir den gesamten Inhalt der Seite und "filtere" dann den Content-Bereich mit JS heraus.
    Gibts eine Möglichkeit dass ich gleich nur den Content per Ajax reinhole?
    Grob in Pseudcode gesagt JA. Es gibt aber keine Möglichkeit nur direkt einen Teil der Seite anzufragen. Du musst die ganze Seite holen und Dir dann den passenden Content rausholen. Neben pushState sollte man auch noch popState implementieren um sicherzustellen das die Navigation via die Vor- und Zurückbuttons im Browser funktionieren.

    Zitat Zitat von lucina Beitrag anzeigen
    Fake-Ajax habe ich mal via https://github.com/inspiredminds/contao-animsition gemacht, das schaut dann beispielsweise so aus: https://www.christine-schmid.net/
    Das schaut zwar nett aus, aber generell würde ich davon abraten. Sinn und Zweck hinter solch einer Ajax-Implementierung ist ja eigentlich das der Seitenaufbau schneller wird. Durch solch einen Fake wirkt die Seite jedoch träger.

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.686
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von BennyBorn Beitrag anzeigen
    Sinn und Zweck hinter solch einer Ajax-Implementierung ist ja eigentlich das der Seitenaufbau schneller wird. Durch solch einen Fake wirkt die Seite jedoch träger.
    ich wäre vorsichtig mit der Behauptung, dass mit Ajax der Seitenaufbau schneller wird... ggf. wenn man sowas wie Lazyload für Elemente usw. einbaut... der Performancevorteil gegenüber einenem Reload der ganzen Seite dürfte bei im Browser gecacheden (uff ... schreibt man das so?) Elementen gering sein.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •