Sukrams: Dateien mehrfach einbinden - wie verarbeitet das der Browser?

Moin,

ich habe eine Seite bekommen, die ich überarbeiten soll. Ich habe jetzt den Fall, dass ich z. B. JS-Dateien habe, wo ein und dieselbe mehrfach eingebunden ist.

Ist das eigentlich unproblematisch, also ignoriert der Browser das oder berechnet der das dann erneut? Irgendwo habe ich mal gelesen, dass ein Browser zwischen 2 und 4 Abfragen zeitgleich bearbeiten kann. Würde das hier auch eine Rolle spielen, oder würde das ignortiert werden? (Unabhängig davon, dass es eine Datei doppelt oder dreifach eingebunden wurde und das nicht wirklich schön ist)

Viele Grüße Markus

  1. ich habe eine Seite bekommen, die ich überarbeiten soll. Ich habe jetzt den Fall, dass ich z. B. JS-Dateien habe, wo ein und dieselbe mehrfach eingebunden ist.

    Das kann falsch sein, aber auch nicht. Schreibe doch mal etwas genauer, was mit

    Seite, wo ein und dieselbe JS-Dateie mehrfach eingebunden ist

    gemeint ist.

    "Seite" meint oft mehrere Webseiten auf einer Domain, die eine "Seite" ("Site") bilden. Löse das auf in "ein HTML-Dokument" oder "mehrere HTML-Dokumente".

    Ferner könnte es für Entscheidung über "gut" oder "böse" hilfreich sein, mehr über die JS-Dateien zu wissen. Was enthalten diese? Funktionen oder einfach nur Code, der Zeile für Zeile abgearbeitet wird?

    Auf den ersten Blick scheint das von Dir beschriebene Vorgefundene aber (im Hinblick auf die Wahrscheinlichkeit) problematisch zu sein.

    1. Moin,

      Das kann falsch sein, aber auch nicht. Schreibe doch mal etwas genauer, was mit

      Seite, wo ein und dieselbe JS-Dateie mehrfach eingebunden ist

      gemeint ist.

      Es geht erstmal nur um eine HTML-Seite in dem Sinne. Das ganze wird über den Head-Bereich im Header eingebunden und würde somit also auf jeder Seite erscheinen, wo der Header eingebunden wurde.

      Ferner könnte es für Entscheidung über "gut" oder "böse" hilfreich sein, mehr über die JS-Dateien zu wissen. Was enthalten diese? Funktionen oder einfach nur Code, der Zeile für Zeile abgearbeitet wird?

      Hauptsächlich sind das Librarys wie jQuery, jQuery UI, die 2-3 Mal drin vorkommen. Und die JS-Datei vom Shariff z. B. ist auch 2 Mal drin, wie ich gerade gesehen habe.

      Viele Grüße Markus

      1. Tach!

        Hauptsächlich sind das Librarys wie jQuery, jQuery UI, die 2-3 Mal drin vorkommen. Und die JS-Datei vom Shariff z. B. ist auch 2 Mal drin, wie ich gerade gesehen habe.

        Die modernen Librarys, wie jQuery, sind so aufgebaut, dass alles einem separaten Scope stattfindet. Es können dann beliebig viele Versionen oder Codestücke nebeneinander liegen. Lediglich die Dinge, die global angelegt werden (wie jQuery oder das $) beeinflussen sich gegenseitig. Ich nehme an, die weiteren Einbindungen weisen einfach diesen Variablen ihren Code zu. Und machen damit die vorherige Einbindung wirkungslos.

        dedlfix.

        1. Moin,

          hat das aber sonst noch irgendwie Auswirkungen auf das Rendering vom Browser? Also wird er dadurch noch langsamer oder ignoriert er das auch?

          Viele Grüße Markus

          1. Tach!

            hat das aber sonst noch irgendwie Auswirkungen auf das Rendering vom Browser? Also wird er dadurch noch langsamer oder ignoriert er das auch?

            Laden und Parsen, gegebenenfalls noch eine Garbage Collection, sind auf alle Fälle auszuführen. Weitere Einbußen sollte es nicht geben. Jedenfalls nicht bei den Librarys, die auf Gegenseitigkeit ausgelegt sind.

            dedlfix.

          2. Also wird er dadurch noch langsamer oder ignoriert er das auch?

            Allgemein lässt sich sagen, dass es durchaus nicht sinnvoll erscheint, erst den Teufel durch den Belzbub auszutreiben, dann den Belzbub durch den Teufel, den dann durch den "Schwarzen", den wieder durch den "Hohlen".

            Also wird er dadurch noch langsamer.

            Wenn Du Dir ein Gefäß hinstellst, es mit Wasser befüllst um darin die Finger zu nässen, dann auskippst um es mit Alkohol zu befüllen (um darin die Finger zu nässen) und es dann wieder auskippst und mit Wasser befüllst um darin die Finger zu nässen käme Dir mit Sicherheit die Idee, dass das nicht ideal ist.

            Ob es Umstände gibt, welche diese Vorgehensweise (wirklich) erzwingen wissen wir nicht.

      2. Hallo,

        Hauptsächlich sind das Librarys wie jQuery, jQuery UI, die 2-3 Mal drin vorkommen. Und die JS-Datei vom Shariff z. B. ist auch 2 Mal drin, wie ich gerade gesehen habe.

        ich habe mich da mal zu geäußert: Zitat 2156

        Gruß
        Jürgen

      3. Hallo Sukrams,

        Ferner könnte es für Entscheidung über "gut" oder "böse" hilfreich sein, mehr über die JS-Dateien zu wissen. Was enthalten diese? Funktionen oder einfach nur Code, der Zeile für Zeile abgearbeitet wird?

        Tja, kann es leider nicht oft genug betonen. Webdesign entwickelt sich immer mehr zum Baukasten, was nicht für jeden und nicht immer schlecht sein muss, aber das Hintergrundwissen bleibt auf der Strecke. Diese bekannten Frameworks bringen Bibliotheken (Vielzahl von Funktionen) mit, diese erleichtern bestimmte beliebte Aufgaben schneller zu erfüllen, hat natürlich auch den Nachteil, dass von der Gesamtheit oft nur ein Mini-Prozentanteil benötigt wird.

        Hauptsächlich sind das Librarys wie jQuery, jQuery UI, die 2-3 Mal drin vorkommen. Und die JS-Datei vom Shariff z. B. ist auch 2 Mal drin, wie ich gerade gesehen habe.

        Neugierig (nee... besser wissbegierig ;-), wie ich bin habe ich mir Sahriff angeschaut, kannte ich noch nicht und auch die gefundene Info war sehr interessant. Danke für den Hinweis.

        Gruss
        Henry

        1. Moin Henry,

          Neugierig (nee... besser wissbegierig ;-), wie ich bin habe ich mir Sahriff angeschaut, kannte ich noch nicht und auch die gefundene Info war sehr interessant. Danke für den Hinweis.

          Shariff gibts auch als Standalone und nicht nur für WordPress: Hier gehts zum Repository.

          Dort finden sich auch noch Links zu Erweiterungen für andere Systeme, falls jemand es noch nicht kennt 😉

          Viele Grüße Markus