Apakah ada alternatif yang lebih performant daripada mengganti file template?

8

Saya harus menyingkirkan banyak markup yang tidak perlu dalam tampilan. Secara umum, saya mencapainya dengan mengganti file template dalam tema saya, tetapi kali ini tampilan sangat besar dan kinerja turun. Jadi saya bertanya-tanya, apakah ada cara yang lebih berkinerja untuk mengurangi markup? Ketika mengubah markup sebuah node, daripada fungsi preprocess lebih cepat daripada mengesampingkan file template, apakah ada mekanisme analogis untuk tampilan?

Sunting 1: Tentu, alasan kinerja yang lemah bukanlah pengesampingan file templat di tempat pertama, tetapi jika saya dapat mengoptimalkan sedikit di sana, saya harus melakukan itu. Selain itu, saya sering mendapat masalah dengan menonaktifkan markup di UI tampilan itu sendiri: menonaktifkan gaya baris misalnya diabaikan ketika saya menggunakan subtema Omega ...

Sunting 2: Saya mengetahui kemungkinan di dalam Views UI; Apa yang saya cari adalah cara manual dengan kontrol yang baik.

Nyonya Adam
sumber
3
Apa yang membuat Anda berpikir mengganti file template menyebabkan penurunan kinerja? Tidak mengatakan itu tidak, tentu saja, tapi rasanya seperti itu tidak mungkin. Kecuali Anda tidak hanya menghilangkan markup tetapi mengubah logikanya juga. Mungkin Anda dapat mengedit pertanyaan dan memberikan lebih banyak konteks? Beberapa detail yang lebih spesifik tentang tampilan dan file templat?
Clive
Menambahkan beberapa detail di atas.
Nyonya Adam
Kinerja lambat bahkan dengan caching dihidupkan? (Cache Views + Cache halaman Anon + Memcache (mungkin) + Varnish (mungkin))
Beebee

Jawaban:

8

Anda dapat menghilangkan markup yang tidak perlu melalui UI Tampilan.

Ketika Anda menambahkan bidang, tersembunyi di bawah Pengaturan Gaya, mereka selalu memiliki tanda centang yang tidak perlu ini default

masukkan deskripsi gambar di sini

Anda juga dapat menghapus markup lainnya di sini

masukkan deskripsi gambar di sini

dan di sini

masukkan deskripsi gambar di sini

Tidak ada Sssweat
sumber
Terima kasih atas jawaban Anda, tetapi saya menyadari kemungkinan di dalam pandangan ui; apa yang saya cari adalah cara manual dengan kontrol yang baik.
Nyonya Adam
7

Hal ini kadang-kadang lebih performant dengan View untuk menampilkan konten bukan bidang. Ini paling baik digunakan dengan mode tampilan khusus, tempat Anda mengonfigurasi mode tampilan untuk menampilkan bidang yang Anda inginkan. Anda kemudian dapat membuat tampilan mode tampilan itu apa pun yang Anda inginkan melalui templat dan pemformat. Ini cenderung berfungsi dengan baik ketika Anda memiliki Entitycache .

Yang mengatakan, semua sistem berbeda. Benar profiling adalah cara terbaik untuk mencari tahu apa yang perlu waktu. Secara pribadi, saya tidak berpikir bahwa markup tampilan menambahkan waktu yang signifikan untuk eksekusi.

mpdonadio
sumber
Pendekatan yang menarik - saya akan profil ini.
Nyonya Adam
7

alasan untuk kinerja yang lemah bukan mengesampingkan file template di tempat pertama, tetapi jika saya dapat mengoptimalkan sedikit di sana, saya harus melakukan itu

Sepertinya Anda didorong untuk mengoptimalkan secara prematur. Jika tampilan mengalami masalah kinerja, pastikan caching diaktifkan pada tampilan untuk menghindari rendering HTML dari awal sebanyak mungkin. Itu akan memberikan peningkatan kinerja yang jauh lebih besar daripada hampir semua pengurangan dalam jumlah file yang terlibat dalam proses rendering.

Setelah tema registri dibangun memiliki banyak template yang diganti tidak boleh menjadi hit nyata pada kinerja lebih dari menggunakan default sejak Drupal masih memuat jumlah file yang serupa (saya telah melihat pengecualian untuk ini jika Anda membuat file untuk setiap kemungkinan menimpa di seluruh rantai, jadi jangan lakukan itu).

Jika Anda beralih ke tampilan entitas alih-alih tampilan bidang, Anda mungkin dapat mengurangi jumlah template yang dimuat dan karenanya mendapatkan sedikit peningkatan dalam kecepatan render. Itu mengasumsikan tampilan entitas juga mengambil langkah-langkah untuk menghindari templat tingkat bidang dan / atau kemungkinan sudah di-cache di tempat lain. Kemungkinan ini akan menjadi banyak pekerjaan manusia yang mahal untuk sangat sedikit peningkatan dalam kinerja mesin.

pelakon
sumber
2
Oke, sekarang seluruh mekanisme menjadi lebih jelas bagi saya. Pada intinya, komentar dan jawaban di sini cenderung mengatakan itu adalah upaya yang salah dan tidak proporsional untuk menghindari penggantian templat untuk mempercepat kinerja. Terima kasih!
Nyonya Adam