Spezifische Resourcen nur bedingt einbinden?



  • Hey!

    Wie würdet ihr es machen, wenn für verschiedene Inhalte auf eurer Website verschiedene Resourcen benötigt werden:

    Einfach immer alles inkludieren, oder in einer .ini oder sonstwo speichern, welche Seiten welche Resourcen brauchen, oder "kleine" Resourcen immer einbinden, größere bedingt, oder...

    Beispiel:
    Eine AddSmiley() Funktion in JavaScript, welche nur auf der Gästebuch-Seite benötigt wird. Immer inkludieren (<script src = ...)? Oder nur bedingt?

    Oder spezielle Stylesheets, oder spezielle PHP-Skripte (Captcha).

    Ein "include()" oder "<script src =" oder "<link rel =" dürfet wohl weniger teuer sein als immer zu prüfen (.ini parsen, foreach(), explode(), ...) und gegebenenfalls einzubinden, nicht?

    Aber wenn sich das häuft...? Oder wie weit sollte man gehen?

    Was meint ihr?
    Danke!
    MfG



  • Hallo,

    grundsätzlich sollte man immer nur das einbinden was tatsächlich benötigt wird. Alles andere wäre Speicherverschwendung.

    Um dir nun weitere Tipps geben zu können müsste man die Topologie deiner Seite kennen.

    LG, Micha



  • Nicht generell.

    Lieber eine "große" 100KB Javascript Datei, als 10 kleine Dateien. Die wird eh nach dem ersten Zugriff gecached (Du chachest schon, wenn du dir Sorgen um Performance macht?) und spielt nur beim Ersten Seitenaufruf eine Rolle.



  • Mhm, jetzt kann ich mich immer noch nicht entscheiden.
    Geht ja nicht nur um JavaScript sondern auch um Stylesheets (welche ich eigentlich schon in getrennten Dateien haben möchte) und externe PHP-Libraries.

    Hmm....



  • Bei PHP-Bibliotheken macht es u.U. sinn, wenn dadurch die Abarbeitung von sehr viel Code erspart wird.

    Bei allem statischen (JS, CSS) wird einmal geladen, gecached und dann ist gut. Hier bringt ein Aufteilen in mehrere Dateien keinen Vorteil, kann im Gegenteil bei vielen Splitterdateien durch den HTTP-Overhead den Traffic sogar signifikant erhöhen.



  • Wenn die Funktionen in PHP gar nicht aufgerufen werden, muss trotzdem geparsed werden?

    Und JavaScript wird zum Clienten übertragen, sobald es eingebunden wird, auch wenn keine Funktion aufgerufen wird?



  • Hallo,

    1. Javascript ist clientseitig und wird immer lokal gecached, somit auch immer runtergeladen, egal obs benötigt wird oder nicht! PHP hingegen ist serverseitig. Große PHP-Scripte, die mit Funktionen überladen werden die nie oder nur selten benötigt werden, können schon zum Störfaktor auf dem Server werden.

    2. Natürlich wird alles geparst, allein schon um die Funktion auf die gerade zugegriffen wird zu finden.

    LG, Micha



  • Ok danke, ich werde nun JS&CSS immer einbinden und PHP-Dateien nur bedingt.


Anmelden zum Antworten