Gibt es eine leistungsfähigere Alternative als das Überschreiben von Vorlagendateien?

8

Ich muss eine Menge unnötiger Markups in einer Ansicht loswerden. Im Allgemeinen erreiche ich dies, indem ich die Vorlagendateien in meinem Thema überschreibe. Diesmal ist die Ansicht jedoch sehr groß und die Leistung nimmt ab. Also habe ich mich gefragt, ob es einen performanteren Weg gibt, um das Markup zu reduzieren. Gibt es beim Ändern des Markups eines Knotens einen analogen Mechanismus für Ansichten, da Vorverarbeitungsfunktionen schneller sind als das Überschreiben von Vorlagendateien?

Edit 1: Sicher, der Grund für die schwache Leistung ist nicht das Überschreiben von Vorlagendateien, aber wenn ich dort ein bisschen optimieren kann, muss ich das tun. Außerdem bekomme ich regelmäßig Probleme, wenn ich das Markup in der Benutzeroberfläche von Ansichten selbst deaktiviere: Das Deaktivieren von Zeilenstilen wird beispielsweise ignoriert, wenn ich ein Omega- Unterthema verwende.

Bearbeiten 2: Ich bin mir der Möglichkeiten in der Benutzeroberfläche von Ansichten bewusst . Was ich suche, ist ein manueller Weg mit Feinsteuerung.

Frau Adam
quelle
3
Was lässt Sie denken, dass das Überschreiben von Vorlagendateien zu einem Leistungsabfall führt? Nicht zu sagen, dass es nicht unbedingt ist, aber es scheint unwahrscheinlich. Es sei denn, Sie entfernen nicht nur das Markup, sondern ändern auch die Logik. Vielleicht können Sie die Frage bearbeiten und etwas mehr Kontext bereitstellen? Einige spezifischere Details zur Ansicht und zu den Vorlagendateien?
Clive
Einige Details oben hinzugefügt.
Frau Adam
Langsame Leistung auch bei aktiviertem Caching? (Ansichten Cache + Anon Seite Cache + Memcache (vielleicht) + Lack (vielleicht))
Beebee

Antworten:

8

Sie können unnötiges Markup über die Benutzeroberfläche für Ansichten vermeiden.

Wenn Sie ein Feld hinzufügen, das unter Stileinstellungen ausgeblendet ist, haben sie immer dieses standardmäßige unnötige Häkchen

Geben Sie hier die Bildbeschreibung ein

Außerdem können Sie hier weitere Markups entfernen

Geben Sie hier die Bildbeschreibung ein

und hier

Geben Sie hier die Bildbeschreibung ein

Kein Sssweat
quelle
Vielen Dank für Ihre Antwort, aber ich bin mir der Möglichkeiten in den Ansichten ui bewusst; Was ich suche, ist ein manueller Weg mit Feinsteuerung.
Frau Adam
7

Bei View ist es manchmal leistungsfähiger, Inhalte anstelle von Feldern anzuzeigen. Dies lässt sich am besten mit benutzerdefinierten Ansichtsmodi nutzen, in denen Sie den Ansichtsmodus so konfigurieren, dass die gewünschten Felder angezeigt werden. Sie können diesen Ansichtsmodus dann über Vorlagen und Formatierer beliebig anzeigen. Dies funktioniert in der Regel gut, wenn Sie über Entitycache verfügen .

Das heißt, alle Systeme sind unterschiedlich. Echte Profilerstellung ist wirklich der beste Weg, um herauszufinden, was Zeit braucht. Persönlich glaube ich nicht, dass das Markup für Ansichten der Ausführung eine signifikante Zeit hinzufügt .

mpdonadio
quelle
Interessanter Ansatz - ich werde dies profilieren.
Frau Adam
7

Der Grund für die schwache Leistung ist nicht das Überschreiben von Vorlagendateien, aber wenn ich dort ein bisschen optimieren kann, muss ich das tun

Klingt so, als würden Sie ermutigt, vorzeitig zu optimieren. Wenn in der Ansicht Leistungsprobleme auftreten, stellen Sie sicher, dass das Caching in der Ansicht aktiviert ist, um zu vermeiden, dass der HTML-Code so weit wie möglich von Grund auf neu gerendert wird. Dies führt zu einer weitaus größeren Leistungssteigerung als fast jede Verringerung der Anzahl der am Rendering beteiligten Dateien.

Sobald die Theme-Registrierung mit vielen überschriebenen Vorlagen erstellt wurde, sollte die Leistung bei Verwendung der Standardeinstellungen nicht merklich beeinträchtigt werden, da Drupal immer noch eine ähnliche Anzahl von Dateien lädt (ich habe eine Ausnahme gesehen, wenn Sie für jede mögliche Datei eine Datei erstellen in der gesamten Kette überschreiben, also tu das nicht).

Wenn Sie zu einer Entitätsanzeige anstelle einer Feldanzeige wechseln, können Sie möglicherweise die Anzahl der geladenen Vorlagen reduzieren und somit die Rendergeschwindigkeit geringfügig verbessern. Dies setzt voraus, dass die Entitätsanzeige auch Schritte unternimmt, um Vorlagen auf Feldebene zu vermeiden, und / oder wahrscheinlich bereits an anderer Stelle zwischengespeichert wird. Dies wäre wahrscheinlich eine Menge teurer menschlicher Arbeit für eine sehr geringe Verbesserung der Maschinenleistung.

Akrosman
quelle
2
Okay, jetzt wird mir der ganze Mechanismus klarer. Unter dem Strich sagen die Kommentare und Antworten hier eher, dass es eine falsche und unverhältnismäßige Anstrengung ist, Vorlagenüberschreibungen zu vermeiden, um die Leistung zu beschleunigen. Vielen Dank!
Frau Adam