Ajax-Varianten refresh ohne die Seite komplett neu zu laden?

hi, gibt es eine möglichkeit die Varianten via Ajax neu zu laden ohne dieses overlay und ohne die komplette seite neu zu laden?

[quote=„Mogly“]hi, gibt es eine möglichkeit die Varianten via Ajax neu zu laden ohne dieses overlay und ohne die komplette seite neu zu laden?[/quote] Hallo, hast du in der Theme-Konfiguration („Einstellungen“ -> „Theme Manager“ -> eigenes Theme anklicken -> „Theme konfigurieren“ -> Reiter „Konfiguration“) deines Themes den Punkt „Varianten Wechsel über Ajax“ aktiviert? weil der „Overlay“ soll bei aktivierter Option oben ja nur verdeutlichen, dass etwas auf der Seite passiert - den könnte man sicher aber auch „ausblenden“. Neuladen würde sich ja bei aktivierter Option oben nur das, was für die Variante nötig ist. Beste Grüße Sebastian

Hi, ja die option ist aktiv. man sieht aber, dass da die komplette seite mit ajax geladen wird und nicht wie gewohnt/vermutet/erwartet nur die relevanten elemente auf der seite. Nach dem laden der kompletten seite wird der inhalt ausgegeben und die url in der adresszeile des browsers aktualisiert. p.s. eine idee wie man das overlay deaktivieren könnte?

[quote=“Mogly”]Hi, ja die option ist aktiv. man sieht aber, dass da die komplette seite mit ajax geladen wird und nicht wie gewohnt/vermutet/erwartet nur die relevanten elemente auf der seite. Nach dem laden der kompletten seite wird der inhalt ausgegeben und die url in der adresszeile des browsers aktualisiert. p.s. eine idee wie man das overlay deaktivieren könnte?[/quote] Hallo, du könntest beispielsweise in deiner LESS-Datei in deinem eigenen Theme folgendes hinterlegen: .js--overlay.is--open { visibility: hidden; } Das würde dann aber auch alle Overlays betreffen, würde aber den “schwarzen abgedunkelten Bereich” entfernen und nur ein Lade-Icon anzeigen. Wo liegt eigentlich das Problem darin, dass statt nur ein ausgewählter Bereich die komplette Seite bei Auswahl einer anderen Variante per Ajax-Request nachgeladen wird? Einen wirklichen “Geschwindigkeitsgewinn” würde man ja nicht erzielen, wenn man nur einen bestimmten Bereich nachlädt. Beste Grüße Sebastian

Hi, danke für den Tipp :slight_smile: was die Geschwindigkeit angeht muss ich widersprechen. Ich habe ein Plugin gebaut welches eben beim Wechseln der Varianten nur die Bilder, Thumbails, Ordernumber, Preise, Attribute, etc neu lädt und im DOM ersetzt. Das läuft wie ein Blitz, sauschnell. Probleme bekomme ich nun, da z.b. die Bilder/Thumbnails in dem jquery SwImageSLider-Plugin initialisiert werden und ich finde irgendwie keine Möglichkeit die nachgeladenen Elemente in dem Slider-Plugin neu zu initialisieren.

Vllt. hilft die Seite ja als Anhaltspunkt: https://shopwareianer.com/tutorials/sho … odal-laden

hi, danke für den Tipp. Weiss grade allerdings leider nicht worauf du hinaus willst(?). Die Page bzw. einzelne Elemente in in Modal zu laden ist doch das selbe, oder irre ich mich da?

Hi Mogly,

ich habe das gleiche Problem wie Du und schaffs auch nicht, dass ich die Thumbnails bzw. die Gallery nachinitialisiere.

Hast Du da inzwischen eine Lösung gefunden?

LG,

Chris

Hi,

ja ich habe es gelöst. Es war allerdings ein einziger Krampf.
Ich habe ein Plugin gebaut, welches die relevanten Daten aus der DB zieht, diese aufbereitet und an den relevanten Stellen im Template einfügt. Könnte es dir zur Verfügung stellen, du wirst jedoch viel anpassen müssen, da es auf unser Template zugeschnitten ist.

Hi,

obwohl es schon gelöst ist hier vielleicht noch ein paar Hintergrund Informationen zur der Standard Lösung von uns.

Wir laden per Ajax die gesamte Detailseite neu und ersetzen nur den oberen Artikel Bereich per Javascript. Grund dafür ist die Kompatibilität zu anderen plugins welche sich auf den PostDispatch des frontend/detail controller registrieren um da weiter Daten und Template Erweiterungen zu laden. Diese werden durch den normalen Controller Dispatch automatisch mit supported :wink:

wo findet man das javascript,das die Elemente der Seite tauscht ? Ich würde gerne ein paar weitere tauschen.

Liebe Grüße

Kerstin