-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hallo Uwe.
Meine Empfehlung: Lass es bleiben, sofern es nicht wirklich zwingende Gründe dafür gibt. Du hast vermutlich sowohl für CSS als auch für JS Compression und Concatenation an, der Benutzer bekommt also auf jeder Seite in Idealfall nur eine CSS-Datei und eine JS-Datei weil serverseitig im Hintergrund mehrere Dateien zusammengeführt werden. Wenn du anfängst, auf jeder Seite nur genau das CSS und JS zu laden das für die Seite notwendig ist, müssen deine Webseitenbesucher bei jedem Seitenaufruf erneut ein paar hundert KB CSS und JS runterladen, obwohl sich der Code *eigentlich* nur ein paar Zeichen unterscheidet. Wenn alle Seiten das gleiche JS und CSS verwenden ist zwar die Dateigröße um ein paar KB größer, dafür sind Folgerequests mit "304 - Not Modified" möglich, was in Summe die Performance verbessert. Es gibt natürlich technische Gründe, das dann doch wieder aufzuweichen. Darunter fallen alle Dateien, die von anderen Webservern kommen und da ggf. verzögert werden. Ich muss z.B. nicht auf jeder Seite die Google-Maps-Lib einbinden wenn ich nur auf einer einzigen Seite eine Google-Karte haben möchte. Vielleicht bietet Gridelements außerhalb der TYPO3-Basismechanismen noch die ein oder andere Möglichkeit die ich nicht kenne. Das kann dir sicher Jo beantworten. Wobei mir sowas bisher noch nicht aufgefallen ist. Das was du vor hast, lässt sich mit TYPO3-Boardmitteln erst mal nicht durchführen. Jedenfalls nicht so einfach, und auch nicht 100% wasserdicht. Zwar könntest du an ein bestimmtes Gridelements-Content per stdWrap einfach JS und CSS anhängen. Das würde dann aber mitten im Body landen. Bei mehrfacher Verwendung des gleichen Elementtyps auch mehrfach. Das ist also keine so wahnsinnig gute Idee. Das USER-Objekt hat zwar ein "includeLibs"-Argument. Das betrifft allerdings PHP-Ressourcen. Es ist dafür also semi-geeignet. Es gibt dafür eigentlich nur zwei halbwegs brauchbare Weg. Beide haben aber jeweils ihre ganz speziellen Nachteile. Erstens könntest du an den Gridelements-Elementtyp per USER oder stdWrap/includeLibs einen PHP-Aufruf anbinden, der die JS-Datei in $GLOBALS[TSFE] registriert. Wenn ich mich recht entsinne hat Powermail1 das damals gemacht, zum Beispiel. Dabei musst du aber hoffen, dass dieses Element nicht innerhalb eines *_INT gerendert wird, also nicht in einem COA_INT und nicht von einem USER_INT aufgerufen wird. Dann nämlich dürfte das entsprechende Header-Fragment bereits gerendert sein wenn das *_INT dazu kommt und der Header enthält die JS-Datei "manchmal" nicht. Nämlich immer dann nicht, wenn der Rest der Seite aus dem Cache kommt. Die zweite Variante wäre, z.B. im "includeJS" per stdWrap ein PHP-Script einzuschleusen, dass global prüft, ob auf der aktuellen Seite ein entsprechendes Gridlements-Content vorkommt und dann das JS nur ein einziges Mal anfügt. Das kann aber ggf. schief gehen, wenn du das Element via "Insert Records" einbindest, weil dann das Content ja gar nicht auf der eigentlichen Seite liegt. Oder aber es kann schief gehen, wenn das Gridelements-Content aufgrund von z.B. Sprachbeschränkungen oder Zugriffsrechten für den aktuellen Frontendbenutzer nicht sichtbar ist. Auch wenn das der weniger schlimme Fehlerfall ist, weil das JS dann einfach untätig zu viel auf der Seite ist. Schlimmer ist jedenfalls, dass das Gridelements-Element da ist aber das JS dazu nicht. Deshalb meine Empfehlung: Binde CSS und JS die du potenziell überall benötigen könntest grundsätzlich überall ein, und solches CSS und JS dass du nur manchmal benötigst dann von Hand auf den wenigen Seiten wo es gebraucht wird. Ein "Carousel" fällt für mich in die Kategorie "muss überall gehen". Gruß, Stephan Schuler Web-Entwickler | netlogix Media Telefon: +49 (911) 539909 - 0 E-Mail: stephan.schu...@netlogix.de Web: media.netlogix.de netlogix GmbH & Co. KG IT-Services | IT-Training | Media Neuwieder Straße 10 | 90411 Nürnberg Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99 E-Mail: i...@netlogix.de | Web: http://www.netlogix.de netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338) Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634) Umsatzsteuer-Identifikationsnummer: DE 233472254 Geschäftsführer: Stefan Buchta, Matthias Schmidt - -----Ursprüngliche Nachricht----- Von: typo3-german-boun...@lists.typo3.org [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Uwe Thiemann Gesendet: Donnerstag, 19. Februar 2015 12:43 An: typo3-german@lists.typo3.org Betreff: [TYPO3-german] CSS-Datei für bestimmtes Grid Element laden Hallo, ich habe unter Typo3 6.2 und Grid Elements 3.1.0 eine Site mit mehreren Grid-Elementen angelegt, die auf verschiedenen Seiten verwendet werden. Mein Grid-Element mit der ID 21 benötigt die owl-carousel.css und owl-carousel.js-Dateien. Diese Dateien würde ich gerne nur in solche Seiten einbinden, in denen das Grid-Element mit der ID 21 verwendet wird. Gibt es hierfür eine Typo-Lösung, oder muss ich ein JavaScript programmieren, dass das Vorhandensein des Elements überprüft und die Dateien dann einbindet? Vielen Dank für Eure Hilfe Uwe _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -----BEGIN PGP SIGNATURE----- Version: PGP Universal 3.3.2 (Build 15704) Charset: utf-8 wpUDBQFU5gqzpp0IwsibV8MBCP8KBAC4GXbUa9JOnKeWUTqkcHN49uJBwFTG7DXn 9ZT3rmJiDETY19nwF5TTFdtr3pq85NE/UMuIjVji6pvIJ+DYf4A0d32ZQLMesRNF HaNa1h+yGVjpcESMP4wlgkGpD41nzVh7V1L8c3EwwlC7vzJ/OhM/7nZcYt2I0Ghq hLpUJDCLkA== =pQ+V -----END PGP SIGNATURE----- _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german