Javascript später parsen

thecrazykaktus

Lt. Junior Grade
Dabei seit
Juli 2007
Beiträge
442
Hi Leute,

weis nicht ob ich hier richtig bin aber mal schauen :)
Und zwar arbeite ich gerade etwas an Optimierung meiner Homepage und bekomme von pagespeed die Meldung das ich das Javascript später parsen soll. (Jquery)

Jquery is ja im Header eingebunden. Kann mir einer sagen wie man später das javascript parst?
 

benneq

Admiral
Dabei seit
Juli 2010
Beiträge
9.209
Das solltest du lassen.
Du hast doch bestimmt auf jeder Seite JQuery Funktionen benutzt oder nicht? Wenn deine HTML Seite jetzt JQuery Befehle verwendet BEVOR die Library geladen wurde, dann bekommst du sehr wahrscheinlich nur noch Fehlermeldungen ;)

Zur Geschwindigkeitsoptimierung könntest du die .js Datei auf einen Server legen der schneller ist. Vielleicht ist es nur das, was bemängelt wird. ?!
 

xii

Lt. Junior Grade
Dabei seit
Feb. 2008
Beiträge
265
Das Javascript einfach am Ende der Seite einbinden.

HTML:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <div id="content">...</div>
  
  <!-- Hier die Scripte einbinden -->
  <script type="text/javascript" src="..."></script>
  <script type="text/javascript" src="..."></script>
</body>
</html>
Ergänzung ()

Das solltest du lassen.
Du hast doch bestimmt auf jeder Seite JQuery Funktionen benutzt oder nicht? Wenn deine HTML Seite jetzt JQuery Befehle verwendet BEVOR die Library geladen wurde, dann bekommst du sehr wahrscheinlich nur noch Fehlermeldungen ;)

Zur Geschwindigkeitsoptimierung könntest du die .js Datei auf einen Server legen der schneller ist. Vielleicht ist es nur das, was bemängelt wird. ?!
Sollte das so sein, wäre das Javascript der Seite generell zu optimieren. Man sollte Javascript in so ziemlich allen Fällen erst ausführen, wenn die Inhalte fertig geladen wurden. Stichwort: DomReady.

Dafür bringt jQuery die Core-Function $() bzw. jQuery() mit.
 

NeoTiger

Lt. Junior Grade
Dabei seit
Juli 2005
Beiträge
409
Wenn es eine externe Javascript-Datei ist, kann man mit dem defer-Attribut im script-Tag veranlassen, dass sie erst ausgeführt wird, nachdem die komplette Seite geladen wurde.

Code:
<script type="text/javascript" defer src="...." ></script>
 

xii

Lt. Junior Grade
Dabei seit
Feb. 2008
Beiträge
265
Man kann doch mit jQuery einfach erst das Script ausführen, wenn das DOM bereit ist:
Code:
$(document).ready(function() {
  // your code here
});
Ist auch in der Einleitung zu jQuery beschrieben: http://docs.jquery.com/How_jQuery_Works#Launching_Code_on_Document_Ready
Dabei handelt es sich um die von mir oben bereits erwähnte Funktion... Dafür gibt es nämlich einen wunderschönen Shortcut... ;o)

Code:
$(function() {
  // your code here
});
 

Daaron

Fleet Admiral
Dabei seit
Dez. 2011
Beiträge
13.487
Klar, man sollte alles erst zum Domready-Event aufrufen lassen, nur geht das bei den Kernfiles eines Frameworks, sei es nun jQuery, Mootools oder sonstwas, nicht. Die müssen regulär geladen werden. Hier ist die einzig sinnige Geschwindigkeitsoptimierung, externe Quellen zu nutzen. Ein Glück, es gibt ja eine Google API dafür. Kaum ne Quelle dürfte schneller sein als das Google CDN.
 

Backslash

Captain
Dabei seit
Okt. 2006
Beiträge
3.240
Dabei handelt es sich um die von mir oben bereits erwähnte Funktion...
Dein Edit kam erst nachdem ich angefangen habe meinen Post zu verfassen.
Und vom Shortcut würde ich abraten, da es weniger klar ist was passiert. Wegen den paar Zeichen weniger tippen würde ich nicht riskieren nach ein paar Monaten nachdenken zu müssen was da passiert (und wenn es nur ein paar Sekunden sind).
 
Zuletzt bearbeitet:

xii

Lt. Junior Grade
Dabei seit
Feb. 2008
Beiträge
265
Dein Edit kam erst nachdem ich angefangen habe meinen Post zu verfassen.
Und vom Shortcut würde ich abraten, da es weniger klar ist was passiert. Wegen den paar Zeichen weniger tippen würde ich nicht riskieren nach ein paar Monaten nachdenken zu müssen was da passiert (und wenn es nur ein paar Sekunden sind).
Oder Millisekunden, oder gar nicht, weil man mit jQuery arbeiten kann :o)

PS: Du hast 8 Minuten gebraucht um die 2 Zeilen zu tippen? Naja ok, Recherche kann ja schon mal 7 Minuten dauern...
 

kling1

Commander
Dabei seit
Aug. 2008
Beiträge
2.330
hab mal eine andere frage.. und zwar bekomme ich diese meldung von google pagespeed obwohl javascript.. das letzte ist was vorm schließendem body tag steht.. noch später kann ich das ja nicht einbinden.. ist jetzt ein fehler von google?
 

Daaron

Fleet Admiral
Dabei seit
Dez. 2011
Beiträge
13.487
Page Speed kann sich auch nur an gewissen Regeln orientieren. Manche Sachen kann man nicht vor </body> verbannen, andere (wie z.B. Frameworks) kann man auf Teufel komm raus nicht asynchron laden lassen bzw. später parsen. Genauso regt sich Page Speed regelmäßig über die Cache Time von gewissen Scripten auf, die man von externen Quellen wie Facebook einbindet. Das hat sich bei mir sogar schon über die Cache Time von Scripten aufgeregt, die ich aus dem Google CDN beziehe.

Setz alles nach besten Möglichkeiten um, aber reg dich nicht über Sachen auf, die dann noch übrig sind. Wenn du wirklich schneller werden willst musst du eh die Time To First Byte senken, also deine Server-Scripte beschleunigen.
 
Top