Einkaufswelt HTML Reihenfolge der Elemente

Ich habe heute bemerkt, dass bei den Einkaufswelten die Elemente absteigend der ID im Template gerendert werden und nicht anhand Ihrer Position. Das Bedeutet, dass ein Element, welches ganz neu in die Einkaufswelt eingefügt wurde nun ganz unten im DOM steht, aber ganz oben in der EK positioniert sein kann. Das Führt nun dazu, dass der Browser (in meinem Fall Chrome und Firefox) nun das erste Bannerelement das Bild lädt/rendered, dann den rest und ganz zum schluss das zweite Bild ganz oben links (was neu hinzugefügt wurde). Kann man da was machen?

Merkwürdig, laut Gateway müsste er es anders sortieren

// EmotionElementGateway.php

        $builder->addOrderBy('emotionElement.start_row', 'ASC')
                ->addOrderBy('emotionElement.start_col', 'ASC');

Ah ok, start_row und start_col sind irrelevant für Responsive layout. Mhh, wie dekorier ich jetzt den service am Besten, damit er auch den Responsive Layout die Elemente richtig sortiert? Beim responsive layouts kommen die infos für start_col und start_row nicht aus der s_emotion_element sondern aus der s_emotion_element_viewports tabelle. Die scheint beim query builder aber nicht gejoined zu sein (?). Die Methode ist auch noch private, dekorieren wird da schwer

Hallo,

das kommt auch darauf an, welchen Einkaufswelten - Modi du nutzt, siehe: https://forum.shopware.com/discussion/55065/seo-einkaufswelten-reihenfolge-der-ausgabe-der-einkaufswelten-elemente-im-code-fuer-seo-sinnvoll .

Grüße 

Sebastian

Was im ElementGateway getan ist völlig egal. Das wirkliche Sorting passiert im JavaScript

@sschreier schrieb:

Hallo,

das kommt auch darauf an, welchen Einkaufswelten - Modi du nutzt, siehe: https://forum.shopware.com/discussion/55065/seo-einkaufswelten-reihenfolge-der-ausgabe-der-einkaufswelten-elemente-im-code-fuer-seo-sinnvoll .

Grüße 

Sebastian

Ja den Beitrag hatte ich auch gefunden, und im Responsive Modus ist es nun so, dass bei vielen Banner-Elementen in einer Einkaufswelt, die neusten ganz unten im DOM landen, was dazu führt, dass der Browser die Bilder zuletzt anfordert, unabhängig Ihrer tatsächlichen Position. Das führt bei mir nun zu einem 1-2 Sekunden weißen Fleck oben rechts. Ich schau mir mal an was @Shyim meinte. Wenn die Elemente per JS positioniert werden, ist zwar gut, der Browser läd trotzdem währendessen die Bilder nach Reihenfolge im DOM, afaik. Sprich ich müsste die Elemente bevor Sie im DOM landen und von jQuery positioniert werden richtig in die richtige Reihenfolge im DOM bringen, damit der Browser die Bilder in der Reihenfolge anfrägt die ich gerne hätte. In meiner jetzigen Situation läd er ein Bild, das Above The Fold ist leider ganz zum Schluss, da es das neuste Element in der EKW ist.