Wo in script-loader.php "async" einfügen?

  • Hallo,

    Zeit wird ja immer wichtiger. Darum möchte ich meine style.css gern asynchron laden, damit sie nicht den Seitenaufbau verzögert. Dazu müsste ich leider im Header die jquery laden, um sie dann wieder die style.css asynchron nachladen zu lassen ...
    In der script-loader.php lautet nun der Befehl, die jquery in den Header zu laden:

    PHP
    $scripts->add( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.8.3' );


    Bitte wo/wie gebe ich an, dass die jquery "async" geladen werden soll?

    Danke schonmal!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Danke, aber falsch. Vielleicht noch mal genauer lesen?
    Man kann die css mit verschiedenen Async-Scripten asynchron laden. Dazu gibt es mehrere Beispiele im Netz, z.B. hier: http://stackoverflow.com/questions/5186…ss-using-jquery, hier: http://h3manth.com/content/asynch…-and-javascript oder hier: http://css-tricks.com/thinking-async/.
    All diese Miniskripte setzen allerdings die die jquery.js voraus - die also zuvor geladen werden muss. Darauf bezieht sich meine Frage: Denn die jquery.js wird über die script-loader.php registriert - nur eben ohne async-tag.

    Nochmal gefragt: Wie kann man in der script-loader.php angeben, dass die jquery mit "async" geladen werden kann?

  • Ohman... es war wohl echt schon spät – tut mir leid. In welchem Film war ich denn da bitte? Ich hab irgendwie gelesen, dass du das async Attribut an ne CSS Datei kleben willst :( Sorry für meinen Blödsinn ;)

  • Bitte wo/wie gebe ich an, dass die jquery "async" geladen werden soll?

    Kann mir nicht vorstellen, dass Du die jQuery-Datei asynchron laden kannst. Erst einmal muss die jQuery ja geladen werden, um im Anschluss, also wenn die jQuery geladen ist, asynchrone Ajax-Request mit jQuery zu realisieren.

    Ob synchron oder asynchron wird beim Öffnen der Verbindung bzw. des XMLHttpRequest-Objektes als dritter Parameter mit true oder false angegeben. Wo da was bei WP oder jQuery zu finden ist, weiß ich hingegen nicht. Wenn, so denke ich, müsste eine Übergabe des Parameters im Zusammenhang mit der Ajax-Funktion erfolgen.

    Und eine CSS sollte nach meiner Meinung immer so schnell wie möglich geladen werden, da diese nicht nur alle Angaben enthält, wie eine Seite dargestellt werden soll, sondern zusätzliche Referenzen auf noch zu ladende Hintergrundgrafiken usw., die mit dem nächsten Schub angefordert werden sollten.

    Einmal editiert, zuletzt von Melewo (15. August 2013 um 21:58)

  • All diese Miniskripte setzen allerdings die die jquery.js voraus - die also zuvor geladen werden muss.

    Was ich persönlich schon immer für Nonsens hielt, statt JavaScript zu lernen, lernen viele nur noch den Umgang mit jQuery. Da wird ein über 90 kB schweres JS-Framework eingebunden, nur für ein paar kleine Aufgaben. Hatte mal etwas geschrieben, um in einem speziellen Fall die Ladezeit zu halbieren und kommt selbstverständlich ohne jQuery aus: Ajax-Parallel-Requests

    Vielleicht kannst Du ja damit etwas anfangen, um Deine Ladezeiten zu verkürzen.

  • Danke für den beschreibenden Artikel, Melewo,
    und ja, du hast natürlich recht, ein schönes elegantes Javascript tut's natürlich auch - sogar eher als die jQuery. :)

  • Nur noch mal zur Klarstellung ...

    Kann mir nicht vorstellen, dass Du die jQuery-Datei asynchron laden kannst. Erst einmal muss die jQuery ja geladen werden, um im Anschluss, also wenn die jQuery geladen ist, asynchrone Ajax-Request mit jQuery zu realisieren.

    "Async" ist ein HTML-Attribut.
    Viele Grüße

  • "Async" ist ein HTML-Attribut.

    Nicht das ich alle neuen Tags und Attribute kennen würde, deshalb habe ich erst einmal nachgeschlagen. Eingeführt in HTML5 und erlaubt nur in Script-Bereichen zur asynchronen Ausführungen von Scripts. Ein Script-Bereich ist und bleibt aber nun einmal JavaScript vorbehalten. JavaScript-Dateien wurden aber schon immer in einem Script-Bereich geladen.

    Wann dieses neue Attribut Vorteile mit sich bringen könnte, würde vom Einzelfall abhängen. jQuery würdest Du damit zuladen können, da lagst Du richtig, das kannte ich bisher nicht. Der Wechsel soll ebenfalls mit true und false erfolgen, wobei ich false mit onload gleichsetzen würde und true sofort entsprechen soll. Ich gehe mal davon aus, dass async = true der Standard-Einstellung entspricht, bin mir aber nicht sicher.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!