{"id":370,"date":"2009-09-03T15:46:08","date_gmt":"2009-09-03T13:46:08","guid":{"rendered":"http:\/\/hjacob.com\/blog\/?p=370"},"modified":"2009-09-03T15:58:33","modified_gmt":"2009-09-03T13:58:33","slug":"php-speedy-javascript-in-den-footer","status":"publish","type":"post","link":"https:\/\/hjacob.com\/blog\/php-speedy-javascript-in-den-footer\/","title":{"rendered":"PHP Speedy: Javascript in den Footer"},"content":{"rendered":"<p><a href=\"http:\/\/aciddrop.com\/php-speedy\/\" rel=\"external\">PHP Speedy<\/a> ist eine ganz feine Sache &#8211; es komprimiert automatisch verschiedene Javascripts in eine einzelne Datei, was die Requests reduziert und die Ladezeit verk\u00fcrzt. Allerdings hat es ein kleines Manko: <b>Es beachtet die Design-Richtlinie <i>Javascript ans Dokumenten-Ende<\/i> nicht<\/b>. So kann man das beheben:<\/p>\n<p>Die Datei php_speedy\/controller\/compressor.php \u00f6ffnen und dort zu Zeile 431 springen. Dort sollte etwas in der Form stehen:<\/p>\n<p>[sourcecode lang=&#8220;php&#8220;]<br \/>\n$source = preg_replace(&#8222;!<head([^>]+)?>!is&#8220;,&#8220;$0 \\n&#8220;.$newfile.&#8220;\\n&#8220;,$source)<br \/>\n[\/sourcecode]<\/p>\n<p>Das \u00e4ndern wir in:<\/p>\n<p>[sourcecode lang=&#8220;php&#8220;]<br \/>\nif(preg_match(&#8222;\/<script\/\",$newfile)) {\n\t$source = preg_replace(\"!<\/body>!is&#8220;,&#8220;\\n&#8220;.$newfile.&#8220;\\n $0&#8243;,$source);<br \/>\n} else {<br \/>\n\t$source = preg_replace(&#8222;!<head([^>]+)?>!is&#8220;,&#8220;$0 \\n&#8220;.$newfile.&#8220;\\n&#8220;,$source);<br \/>\n}<br \/>\n[\/sourcecode]<\/p>\n<p>Somit wird die komprimierte CSS Datei am Anfang geladen und die Javascript Datei am Ende. Als Resultat wirkt der Page Load subjektiv schneller. Das liegt daran, dass man fr\u00fcher etwas sehen kann, da der <b>Browser das Rendern schon beginnt bevor die Javascript Datei geladen ist<\/b>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie man das Page Rendering mit PHP Speedy optimieren kann indem man den Javascript Include an das Dokumenten-Ende setzt.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[115,116,36,3],"tags":[119,118,117,107],"_links":{"self":[{"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/posts\/370"}],"collection":[{"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/comments?post=370"}],"version-history":[{"count":5,"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/posts\/370\/revisions"}],"predecessor-version":[{"id":375,"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/posts\/370\/revisions\/375"}],"wp:attachment":[{"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/media?parent=370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/categories?post=370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hjacob.com\/blog\/wp-json\/wp\/v2\/tags?post=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}