2016-05-12 10 views
3

Google Pageseed beschwert sich sehr oft, dass HTML nicht ausreichend minimiert ist. In meinem Fall könnte eine 13% ige Reduktion erreicht werden. Es ist nicht viel, aber ich bin neugierig zu wissen.Gibt es eine Möglichkeit, HTML in JSF besser zu minimieren?

Ich verwende JSF 2, PrimeFaces, OmniFaces und GlassFish. Komprimierung in Glassfish ist aktiviert. Alle meine Ressourcen (CSS und Javascript) werden minimiert und mit CombinedResourceHandler von OmniFaces kombiniert. So ist alles für das Web optimiert.

Google recommends, um einen HTML-Minifier zu verwenden. Aber das ist mit JSF nicht möglich.

Gibt es noch etwas, das mir nicht bekannt ist, um bessere Ergebnisse zu erzielen?

+0

Schöne Frage +1. Meine Vermutung ist, dass Sie das JSF-Servlet erweitern und einen Minifier hinzufügen müssten, bevor die Antwort erfolgt. Nimm meine Worte nicht dafür, das ist nur eine wilde Vermutung. Ich hoffe, jemand, der mehr Erfahrung hat, wird deine Frage beantworten, yeah du weißt wer. – Ced

+0

Setzen Sie einen anderen Server in den Vordergrund oder verwenden Sie einen Dienst wie cloudflare, und führen Sie eine Minimierung im laufenden Betrieb durch. – YOU

+0

Eigentlich verwenden wir Nginx vor Glassfish und ich habe gerade festgestellt, dass PageSpeed ​​ein Modul für nginx bietet. Ich werde es versuchen. (Muss das zuerst mit meinem Systemadministrator besprechen). Ich melde mich, wenn ich Ergebnisse erhalte. Wie auch immer, es gibt vielleicht ein Optimierungspotential, wie JSF HTML generiert. – codyLine

Antwort

0

MyFaces Core bietet eine Möglichkeit, die HTML-Leerraumkomprimierung seit 2.1.10 zu aktivieren.

+0

Wenn Sie gzip encoding verwenden (was Sie tun sollten), wird die Whitespace-Komprimierung in dem Sinne nicht benötigt, dass gzip ihm einen kurzen Code zuweist und das Ergebnis ist im Grunde gleich – Kukeltje

+0

Bitte beachten Sie, dass gzip die Antwort puffern muss , die die Speicherbelegung des Servers erhöhen. Die Komprimierung erfolgt hier zur Kompilierzeit, also nur einmal. Die Gzip-Komprimierung erhöht auch die CPU-Nutzung, da sie pro Anfrage angewendet wird. Stattdessen ist mein Ratschlag, einen Apache-Server zu verwenden, um eine gezippte Kopie der Ressourcen (js und css-Dateien) zwischenzuspeichern und den dynamischen Inhalt (html) ohne gzip-Komprimierung (aber mit Leerraumkomprimierung) zu lassen. – lu4242

+0

@BalusC Das klingt auch interessant. Könnte ein schönes Feature in Omnifaces sein? – codyLine

0

Wir verwenden Frontend-Maven-Plugin in Kombination mit Schluck. Dies ermöglicht es Ihnen, typescript und less/sass zu schreiben und minimierte (Bundles, gezippte usw.) Ressourcendateien zu erstellen.

Sie können spicken https://github.com/ButterFaces/ButterFaces

+0

Oh interessant, noch nie von ButterFaces vorher gehört. Ist es möglich, es mit Primefaces und Omnifaces zu kombinieren? – codyLine

+0

Ja, es funktioniert mit OmniFaces out-of-the-box. Um es in Kombination mit PrimeFaces zu verwenden, müssen Sie etwas tun https://butterfaces.gitbooks.io/butterfaces/content/primefaces_integration.html –