From robinson2.ben at gmail.com Wed Feb 11 15:56:35 2015 From: robinson2.ben at gmail.com (Ben Robinson) Date: Wed, 11 Feb 2015 15:56:35 +0100 Subject: [TYPO3-UG Freiburg] javascriptLibs, includeJS + includeJSFooter Message-ID: Hallo zusammen, ich habe mich gerade n?her mit https://developers.google.com/speed/pagespeed/insights/ auseinandergesetzt und versuche nun u.a. die Einbindung von JavaScript zu optimieren. Folgende Scripte nutze ich bei den meisten Projekten: 1. modernizr (f?r u.a. html5shiv und no-js -> js in ) 2. jQuery-Library 3. jQuery-Plugins wie z.B. "Flexslider" F?r den modernizr wird empfohlen, diesen im zu laden. jQuery sollte, gefolgt vom jQuery-Plugin, vor dem schlie?enden geladen werden. Das bekomme ich aber per TypoScript nicht so richtig hin ? mein Ansatz: page = PAGE page { config { #moveJsFromHeaderToFooter = 1 } javascriptLibs{ jQuery = 1 jQuery.noConflict = 0 } includeJS { file1 = fileadmin/sys/default/public/js/libs/modernizr.custom.56265.js } includeJSFooter{ file1 = fileadmin/sys/default/public/js/libs/jquery.flexslider-min.js } } Wenn "moveJsFromHeaderToFooter" aktiviert ist, rutscht jQuery wie gew?nscht in den Footer, aber modernizr dann leider auch. Ist "moveJsFromHeaderToFooter" deaktiviert, dann steht jQuery auch im :-( Wie macht Ihr sowas? Viele Gr??e Ben From typo3 at t3node.com Sat Feb 14 15:59:25 2015 From: typo3 at t3node.com (=?UTF-8?B?U3RlZmZlbiBNw7xsbGVy?=) Date: Sat, 14 Feb 2015 15:59:25 +0100 Subject: [TYPO3-UG Freiburg] javascriptLibs, includeJS + includeJSFooter In-Reply-To: References: Message-ID: Hi. Am 11.02.2015 um 15:56 schrieb Ben Robinson: > F?r den modernizr wird empfohlen, diesen im zu laden. > jQuery sollte, gefolgt vom jQuery-Plugin, vor dem schlie?enden geladen werden. Vergiss page.javascriptLibs und mach Deine CSS/JS includes 100% selbst. config { doctype = html5 htmlTag_setParams = lang="de" class="no-js"> } page { includeCSS.style = /css/main.css includeJS.vendor_modernizr = /js/vendor/modernizr.js includeJSFooter.vendor_jquery = /js/vendor/jquery.js includeJSFooter.main = /js/vendor/main.js } -- cheers, Steffen Active Contributor TYPO3 CMS Personal Blog: http://www.t3node.com/ Twitter: @stmllr - https://twitter.com/stmllr GitHub: https://github.com/stmllr From robinson2.ben at gmail.com Sun Feb 15 18:18:39 2015 From: robinson2.ben at gmail.com (Ben Robinson) Date: Sun, 15 Feb 2015 18:18:39 +0100 Subject: [TYPO3-UG Freiburg] javascriptLibs, includeJS + includeJSFooter In-Reply-To: References: Message-ID: Hi Steffen, danke Dir! So funktioniert's jetzt prima: 1. modernizr doch komplett rausgeschmissen und die 2 ben?tigten Features direkt inline im mittels headerData ausgegeben, damit daf?r kein Request mehr ben?tigt wird: 2. jQuery mittels ... page.20 = TEXT page.20.value( ) ... von Google inkl. Fallback ans Ende der Seite. 3. Danach dann noch sonstige Scripte ?ber includeJS, welche ?ber config.moveJsFromHeaderToFooter = 1 nach unten geschoben werden. Alternativ w?re auch includeJSFooter gegangen, aber damit wurden die Scripte nicht mit dem von TYPO3 ausgegebenen JS (z.B spamProtectEmailAddresses) gemerged (bei config.concatenateJsAndCss = 1). Was jetzt noch nicht funktioniert ist minify des JS durch TYPO3 - das Feature scheint bei 6.2 verloren gegangen zu sein. F?r CSS gibt's das noch ?ber config.compressCss = 1. Naja, das kann ich notfalls von Hand machen. Viele Gr??e Ben