jQuery zu spät verfügbar - beste Lösung? (ContentManager-Seiten)

Thema wurde von MJ, 12. Juli 2018 erstellt.

  1. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    525
    Danke erhalten:
    54
    Danke vergeben:
    91
    Ich habe im Content-Manager eine meinhammerscript.php - funktioniert super. Allerdings steht jQuery hier noch nicht zur Verfügung - das ist ein Dilemma!

    Hat dafür jemand eine Lösung oder einen Ansatz?

    Vielen Dank.
     
  2. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.656
    Danke erhalten:
    1.261
    Danke vergeben:
    300
    Hi,

    warum muss die Datei im Content-Manager ein JavaScript einbinden?
    Normalerweise reicht es das JavaScript einfach in den Ordner /templates/Honeygrid/usermod/javascript/Global/ zu laden. Damit steht es auf allen Seiten zur Verfügung.

    Über PHP im Content-Manager JavaScript einzubinden ist nicht die feine Art.

    Über GXModules ist es übrigens genauso möglich einfach JavaScripte auf allen FrontEnd Seiten einzubinden.
    Einfach einen Ordner MeinName/MeinModul/Templates/Honeygrid/JavaScript/Global/ anlegen und dort die JavaScripte ablegen.

    Da steht dann auch überall jQuery zur Verfügung.
     
  3. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    525
    Danke erhalten:
    54
    Danke vergeben:
    91
    #3 MJ, 13. Juli 2018
    Zuletzt bearbeitet: 13. Juli 2018
    Ähm, ja ich bin bei der unfeinen Art.

    Ich habe über den ContentManager eine xyz.php geladen in der ein Script geladen wird. Ein völlig autarkes mit eigener DB etc. Die liest Daten aus einem Kurssystem ein. Das funktioniert alles hervorragend und ist safe. Da jQuery erst am Ende geladen wird, bleibt mir nur nachzuhelfen. Zweimal laden ist Quark. Entweder ich lade nur in den entsprechenden Seiten direkt nach und arbeite mit noConflict oder ich packe es - so wie Avenger - auch in den Header. Da wir viel mit jQuery arbeiten, ist das für uns der einfachere Weg.

    Ich bin mir gerade nicht sicher - ihr ladet ja jQuery mit:
    include_once(get_usermod(DIR_FS_CATALOG . 'gm/javascript/jquery/jquery.min.js'));

    Reicht das include_once um zu erkennen, das jQuery schon geladen wurde? Ich meine nicht. Oder?

    Liebe Grüße
    Jens
     
  4. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Du solltest umdenken. Die Reihenfolge der Scriptladeaktionen ist absolut Reihenfolgen und damit zeitempflindlich. Wenn du mit deinem Jquery herumdrängelst, löst zu zu 99% sicher Funktionsstörungen im Shop aus. Hol das JS aus der Contentmanagerseite und binde es in die Shopabläufe normal ein, sonst unterliegst du grossen Gefahren.
     
  5. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    525
    Danke erhalten:
    54
    Danke vergeben:
    91
    Du meinst, jQuery könnte zu früh kommen?o_O
     
  6. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Ich meine einfach: Du solltest die Reihenfolge der Dinge nicht unnötig durcheinanderbringen. Das gibt die skurilsten und schwierigst zu findenden sporadischen Fehler. Sowas haben wir schon öfter in Kundenshops gejagt, und erst nach ewiger Stocherei und massig Reproduktionsproblemen gefunden. Das ärgert alle Seiten unnötig.
     
  7. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    525
    Danke erhalten:
    54
    Danke vergeben:
    91
    hmm, ja okay - das kommt auf den Versuch an - ihr habt da ganz sicher die beste Erfahrung. Im Moment hab ich unsere 'Probleme' so gelöst und es gibt auch (noch) keine Probleme. Aber ich werde die Warnung im Hinterkopf behalten. Abgesehen von der kleinen Verzögerung durch das frühere Laden von jQuery läuft alles bestens.

    Also für mich ist der Thread somit auch gelöst.
     
  8. besi

    besi Erfahrener Benutzer

    Registriert seit:
    14. Oktober 2014
    Beiträge:
    45
    Danke erhalten:
    6
    Danke vergeben:
    19
    schon was älter.
    Das "zu späte jquery" kann man zumiindest in den Tabs der Artikelbeschreibung umgehen wie folgt:
    für script-Dateien mit dem "defer"-Attribut im Aufruf, Code an Ort und Stelle kann man kapseln:'

    window.onload = function()
    { //code}

    und ich teste auf nem lokalen Apache-Server