2016-05-16 11 views
0

Ich benutze Lenker Templating-Engine auf meiner App, die hauptsächlich zielt auf Desktop-Browser.Precompiled Lenker Vorlage verdoppelt die Dateigröße

Derzeit verteile ich alle meine Vorlagen in HTML und kompiliere sie im Browser. Ich möchte die Vorkompilierung auf meine Vorlagen anwenden, um meine App schneller zu machen, aber die Dinge haben nicht so funktioniert, wie ich dachte.

Ich betreibe Befehle wie diese zu meinen Vorlagen vorkompilieren und zu minimieren:

handlebars -m example.handlebars -f example.js

Dann habe ich bekam die example.js mit die Dateigröße verdoppelt!

Ich reduziere den Verbrauch von Browsern, ohne Vorlagen zu kompilieren und das Laufzeitpaket von Lenkern ist viel kleiner. Aber die Dateigröße meiner Vorlagen kostet mich mehr als das, was ich habe.

Also habe ich etwas falsch gemacht, wenn ich meine Vorlagen vorkompiliere?
Oder habe ich die Bedeutung von Vorkompilierungsvorlagen falsch verstanden?

Antwort

2

Es gibt immer einen Overhead in der Größe sein wird, wenn Vorlagen Vorkompilieren, diese da Ausdrücke wie:

<div>{{values.abc}}</div> 

etwas kompiliert werden mögen:

function program(data) { 
    return '<div>' + program2(data) + '</div>'; 
} 
function program2(data) { 
    return data.values ? data.values.abc ? data.values.abc : '' : ''; 
} 

Aber hier Größe sollte nicht sein, Hauptanliegen. Wenn dies der Fall ist, sollten Sie in Erwägung ziehen, die Vorlagen bei Bedarf dynamisch zu laden, anstatt alles gleichzeitig an den Client zu senden.

+1

Um "einige" (wenn auch sehr wenig) Größe zu reduzieren, minimiere ich meine Lenker HTML vor dem Kompilieren. Sorgen Sie jedoch nicht wegen der erhöhten Dateigröße wegen der Vorkompilierung - dies ist eine wesentliche Verbesserung gegenüber der clientseitigen Kompilierung. –

+1

@SebastienDaniel HTML minifying gibt normalerweise nicht viel, da sowieso alles gezippt wird. Während JavaScript minifying (uglifying) ein wenig mehr helfen kann, da die Struktur des Codes ebenso wie Leerzeichen geändert werden kann, können Zeilenumbrüche entfernt werden. – andlrc

+0

Das dynamische Laden der Vorlagen kann jedoch das Problem der "erweiterten Dateigröße" nicht lösen. Eine größere Datei benötigt mehr Zeit für die Netzwerkübertragung, also bezweifle ich, ob es sich lohnt. Ich habe die Geschwindigkeit der Vorlagen in Chrome getestet und es war extrem schnell. – AmBeta

Verwandte Themen