テンプレートファイルを上書きするよりもパフォーマンスの高い代替手段はありますか?


8

ビューで不要なマークアップをたくさん取り除く必要があります。一般的には、テーマのテンプレートファイルを上書きすることで実現しますが、今回はビューが非常に大きくなり、パフォーマンスが低下します。マークアップを削減するためのより高性能な方法があるかどうか、私は疑問に思いましたか?ノードのマークアップを変更する場合、前処理機能の方がテンプレートファイルを上書きするよりも高速ですが、ビューに類似のメカニズムはありますか?

編集1:確かに、パフォーマンスが低下する理由は、そもそもテンプレートファイルを上書きすることではありませんが、そこで少し最適化できる場合は、それを実行する必要があります。さらに、ビューのUI自体でマークアップを無効にすることで、定期的に問題が発生します。たとえば、Omegaサブテーマを使用すると、行スタイルの無効化は無視されます…

編集2:ビュー UI 内の可能性を認識しています。私が探しているのは、細かく制御できる手動の方法です。


3
テンプレートファイルを上書きするとパフォーマンスが低下する原因は何だと思いますか?必ずしもそうではないというわけではありませんが、そうなる可能性は低いと感じています。マークアップを削除するだけでなく、ロジックも変更する場合を除きます。多分あなたは質問を編集してもう少しコンテキストを提供できますか?ビューとテンプレートファイルに関するより具体的な詳細はありますか?
クライブ

上記のいくつかの詳細を追加しました。
アダムマダム

キャッシュをオンにしてもパフォーマンスが低下しますか?(ビューキャッシュ+ Anonページキャッシュ+ Memcache(おそらく)+ Varnish(おそらく))
Beebee

回答:


8

ビューUIを使用して、不要なマークアップを排除できます。

スタイル設定で非表示になっているフィールドを追加すると、フィールドには常にこのデフォルトの不要なチェックマークが付きます

ここに画像の説明を入力してください

また、ここでさらにマークアップを削除できます

ここに画像の説明を入力してください

そしてここ

ここに画像の説明を入力してください


回答ありがとうございます。ただし、ビューUI内の可能性は認識しています。私が探しているのは、細かく制御できる手動の方法です。
アダムマダム

7

ビューでは、フィールドではなくコンテンツを表示する方がパフォーマンスが向上する場合あります。これは、必要なフィールドを表示するようにビューモードを構成するカスタムビューモードで活用するのが最適です。その後、テンプレートとフォーマッタを使用して、そのビューモードの表示を自由に変更できます。Entitycacheがある場合、これはうまく機能する傾向があります。

つまり、すべてのシステムは異なります。真のプロファイリングは、何が時間がかかっているかを把握するための本当に最良の方法です。個人的には、ビューのマークアップが実行にかなりの時間を追加しているとは思いません。


興味深いアプローチ–これを紹介します。
アダムマダム

7

パフォーマンスが低い理由は、そもそもテンプレートファイルを上書きすることではありませんが、そこで少し最適化できる場合は、それを行う必要があります

あなたは時期尚早に最適化するように勧められているように聞こえます。ビューでパフォーマンスの問題が発生している場合は、ビューでキャッシュが有効になっていることを確認して、HTMLを最初からレンダリングしないようにします。これにより、レンダリングプロセスに関連するファイル数をほとんど削減するよりも、パフォーマンスが大幅に向上します。

テーマレジストリが構築されたら、Drupalはまだ同じ数のファイルをロードしているため、オーバーライドされたテンプレートが多数ある場合でも、デフォルトを使用した場合よりもパフォーマンスに大きな影響はありません(可能な限りすべてのファイルを作成すると、例外が発生します)チェーン全体でオーバーライドするので、しないでください)。

フィールド表示ではなくエンティティ表示に切り替えると、ロードされるテンプレートの数を減らすことができるため、レンダリング速度が少し改善されます。これは、エンティティの表示もフィールドレベルのテンプレートを回避するための措置を講じていることや、すでに他の場所にキャッシュされている可能性があることを前提としています。おそらくこれは、マシンのパフォーマンスをほとんど改善しないために、多くの高価な人間の労働力になるでしょう。


2
さて、これでメカニズム全体が明確になりました。結論として、ここでのコメントと回答は、パフォーマンスを高速化するためにテンプレートのオーバーライドを回避するのは間違っていて不釣り合いな努力であると言う傾向があります。ありがとうございました!
マダムアダム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.