Skript yall.js steht nicht zur Verfügung

Thema wurde von wittenfr, 22. Juli 2019 erstellt.

  1. wittenfr

    wittenfr Aktives Mitglied

    Registriert seit:
    19. August 2013
    Beiträge:
    34
    Danke erhalten:
    0
    Danke vergeben:
    6
    Hallo zusammen!

    Versuche, auf der Startseite meines Shops, die viele Bilder enthält, Lazy Loading hinzubekommen. Die Testseite dazu:
    https://www.golf-instyle.de/de/info/performance-test01.html

    Möchte dazu yall.js (Yet Another Lazy Loader) einsetzen. Habe dazu von https://github.com/malchata/yall.js das Skript gespeichert unter ... /gx2/templates/Honeygrid/usermod/javascript/Global/yall.js. Damit müsste es doch auf meiner gesamten Site verfügbar sein, oder?

    Am Anfang der Seite ist eigetragen:

    <script>
    document.addEventListener("DOMContentLoaded", yall);
    </script>

    Anschließend natürlich den Cache "für Seitenausgabe" und "für Modulinformationen" geleert.

    Rufe ich die Seite https://www.golf-instyle.de/de/info/performance-test01.html dann auf, bekomme ich im devtool die Fehlermeldung "Uncaught ReferenceError: yall is not defined"

    Hilfsweise habe ich das Skript direkt am Anfang der html-Seite eingefügt - dann funktioniert's.

    Habe schon das Forum ausgiebig durchstöbert, die Anweisungen unter https://tracker.gambio-server.net/projects/gxdoc/wiki/Usermods_in_Templates umgesetzt, aber zu meinem Fehler nichts Hilfreiches gefunden.

    Was mache ich falsch?

    Gruss
    FDW
     
  2. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.097
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Bei JS ist die reihenfolge immer wirchtig. deins muss ja ganz am Anfang geladen werden damit es beim Seitenaufbau zur verfügung steht und die SRC der Bilder manipulieren kann.
    Ich würd es daher nicht in global sondern im heat am Seitenanfang laden lassen.

    Bedenke aber das das ganze auch nachteile mit sich bringen kann. Das Thema wurde schon mal im Forum diskutiert.
     
  3. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.668
    Danke erhalten:
    1.263
    Danke vergeben:
    300
    Hi, wenn das JavaScript im usermod Verzeichnis ist, muss dein Script was das andere Script anspricht danach geladen werden. Wenn du also den Code von GitHub in der Datei hast, dann musst du den eigenen Code danach auch in die selbe Datei packen.

    Wenn du also am Ende der Datei /gx2/templates/Honeygrid/usermod/javascript/Global/yall.js einfach folgenden Code einfügst, sollte das ganze dann funktionieren:

    Code:
    document.addEventListener("DOMContentLoaded", yall);
     
  4. wittenfr

    wittenfr Aktives Mitglied

    Registriert seit:
    19. August 2013
    Beiträge:
    34
    Danke erhalten:
    0
    Danke vergeben:
    6
    danke Euch für die Tipps. Ich muss noch erwähnen, dass ich mich in das Thema java scripts gerade erst einarbeite.

    Das Einfügen des Codes am Ende des Scripts hat nicht funktioniert. Ich habe jetzt das Script aus der komprimierten yall.min.js am Anfang im html eingefügt, "document.addEventListener("DOMContentLoaded", yall);" dahinter - funktioniert so einwandfrei.

    Zu möglichen Nachteilen: Soweit ich verstanden habe, kann yall erkennen, wenn ein crawler die Seite aufruft und stellt dann sämtliche Bilder sofort zur Verfügung. Weiterhin habe ich noscript code mit den Bildern und alt- und title- Angaben eingefügt, damit google die Bilder richtig "verstehen" kann. Werde das natürlich beobachten.

    Gruss
    FDW