Wie eine externe JavaScript-Datei erst nach vollständigem Seitenaufbau laden?

  • geschlossen
  • JavaScript

  • Peter1
  • 2807 Aufrufe 5 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wie eine externe JavaScript-Datei erst nach vollständigem Seitenaufbau laden?

    Hallo miteinander,

    gleich vorab: Ich bin absoluter JavaScript-Anfänger.
    Es geht um folgendes Problem: Ich habe hier in eine Website das JavaScript der Webanalyse-Lösung "Piwik" eingebaut. Das Problem ist nun, dass sich dadurch der Seitenaufbau etwas verzögert. Zwar handelt es sich dabei nur um etwa eine Sekunde, aber eigentlich waren die Seiten, durch die man sich rasch durchklicken können soll, extra minimalistisch konzipiert, damit sie so flott wie möglich sind. Bislang gab es auch kaum eine wahrnehmbare Verzögerung und es wäre eine bischen schade, nur wegen der Webanalyse darauf verzichten zu müssen.

    Daher nun meine Frage, ob es irgendwie möglich ist, das für den Seitenbesucher uninteressante Piwik-Script erst nach dem eigentlichen Seitenaufbau auszuführen, also wenn der Besucher die Seite bereits vollständig angezeigt bekommt. Ich habe bereits einiges versucht, indem ich das Script in eine externe Datei gepackt habe, das klappte aber alles nicht.

    Würde mich freuen, wenn mir jemand dazu einen Tipp geben könnte. Soweit ich es verstanden habe, könnte man dazu den Event-Handler Onload verwenden, ich weiß aber schon nicht, wie ein entsprechendes Script aussehen muss.

    Vorab schon mal besten Dank!

    Gruß
    Peter
  • Hi,
    da gibt es verschiedene Möglichkeiten.
    Am einfachsten ist es, das verlinkte Script ans Ende der Seite zu platzieren. So wird es erst geladen, wenn die Seite (fast) fertig gerendert ist.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Hallo Broken Sword,

    erst mal vielen Dank für die schnelle Antwort.
    Das mit dem Verlinken am Ende war das erste - weil eben auch das einfachste - was ich versucht habe. Das klappt aber aus irgendwelchen Gründen nicht, der Browser - egal ob Firefox oder Opera - arbeitet offenbar trotz allem auch die Script-Datei ab, bevor er die Seite anzeigt.

    Besten Gruß
    Peter
  • Hi,
    das ist aber unlogisch. Woher soll der Browser denn wissen, dass eine Script-Datei kommt? ^^""

    Wie wäre es denn mit einem Link? So könnte man weiter sehen/mit dem Code arbeiten.

    (Hier klappt es ja auch: ralph-segert.de/index.html)

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Ja, ganz logisch kommt mir das auch nicht vor. Ich kann gerne die Links posten, das "Problem" ist nun, dass die Performance des Servers schwankt und gerade im Moment ist die Verzögerung sehr gering. Andererseits geht es ja um die grundsätzliche Frage, wie der Seitenaufbau trotz Script am Ende langsamer sein kann.

    Deshalb probiere doch mal folgendes aus: Momentan ist der Script nur bei der englischen Version der Seite eingebaut. Klicke Dich also einmal bei der deutschen Version links oben bei "Aktuelle Daten (Tabelle)" durch und dann noch einmal bei der englischen bei "Update data (table)". Ich benutze hier den Firefox bzw. Opera.

    Dank und Gruß
    Peter

    /EDIT: Da die Verzögerung momentan nur sehr geringfügig ist, haben wir das Script nun überall eingebaut. Dabei habe ich festgestellt, dass der IE keinen Unterschied beim Aufbau macht, wohl aber Firefox oder Opera. Vielleicht hat ja doch noch wer einen Tipp, wie das mit verzögerten Nachladen funktionieren könnte (für den Fall, dass der Piwik-Server wieder langsamer wird).

    economic-growth.EU - Bruttoinlandsprodukt und Wirtschaftswachstum in der Europäischen Union (EU)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Peter1 ()

  • Hi,
    (sorry - kam bisher nicht dazu, dir zu antworten)
    probiere doch mal folgendes zum Einfügen

    Quellcode

    1. <script type="text/javascript">/*<![CDATA[*/
    2. var pkBaseURL = 'http'+(('https:' == document.location.protocol)?'s':'')+'://webanalyse.economic-growth.eu/';
    3. var piwikTracker;
    4. var piwikLoaded = 0;
    5. window.onload = function() {
    6. if(piwikLoaded) return 0;
    7. piwikLoaded = 1;
    8. var script = document.createElement('script');
    9. script.type = 'text/javascript';
    10. script.src = pkBaseURL+'piwik.js';
    11. var head = document.getElementsByTagName('head');
    12. if(!head) return 0;
    13. head[0].appendChild(script);
    14. window.setTimeout('loadPiwik();',500);
    15. }
    16. loadPiwik = function() {
    17. try {
    18. piwikTracker = Piwik.getTracker(pkBaseURL+'piwik.php',1);
    19. piwikTracker.trackPageView();
    20. piwikTracker.enableLinkTracking();
    21. }
    22. catch(err) {}
    23. }
    24. /*]]>*/</script>
    Alles anzeigen


    Dann lädt es wirklich erst nachdem die gesamte Seite geladen ist.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword ()