Optimaliseer mijn Craft CMS templates voor betere prestaties
description
Met deze prompt kan ik de snelheid en efficiëntie van mijn Craft CMS website verbeteren door mijn templates te optimaliseren. Dit helpt laadtijden te verminderen, serverbelasting te verlagen en de gebruikerservaring te verbeteren. Het is beter dan algemene optimalisatietips omdat het specifiek kijkt naar mijn eigen template code en de unieke mogelijkheden van Craft CMS benut.
prompt
Help me mijn Craft CMS templates te optimaliseren door de volgende template code te analyseren ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier zijn enkele suggesties om je Craft CMS templates te optimaliseren voor betere laadtijden en efficiënter gebruik van Twig:
1. Vermijd dubbele loops:
Je hebt twee keer dezelfde loop over dezelfde entries. Dit zorgt voor onnodige herhaling en kan de laadtijd verhogen. Verwijder de dubbele loop zodat je slechts één keer door de entries gaat.
2. Gebruik alleen de benodigde gegevens:
Je limit nu op 10 entries, dat is goed. Zorg dat je alleen de velden ophaalt die je daadwerkelijk gebruikt, bijvoorbeeld door `with` of `select` te gebruiken als je grote velden hebt.
3. Laadt alleen wat nodig is:
Overweeg om de entries vooraf te laden en ze in een variabele op te slaan, zodat je niet meerdere keren dezelfde query uitvoert.
4. Verbeter de HTML-structuur:
De code bevat een fout: er is een dubbele `</h2>` en mogelijk een verkeerd geplaatste closing tag. Zorg dat je HTML correct is.
5. Minimaliseer Twig-code binnen de loop:
Houd de template simpel en minimaliseer logica in Twig.
Voorbeeld van een verbeterde versie:
```twig
{% set nieuwsEntries = craft.entries.section('nieuws').limit(10).all() %}
{% for entry in nieuwsEntries %}
<h2>{{ entry.title }}</h2>
<p>{{ entry.summary }}</p>
{% endfor %}
```
Extra tips:
- Overweeg paginatie als je meer entries hebt, om de eerste 10 te laden en de rest op een aparte pagina.
- Gebruik caching voor veelgebruikte data.
- Als je grote velden hebt, gebruik dan `with` of `select` om alleen de benodigde data op te halen.
Door deze verbeteringen toe te passen, verhoog je de efficiëntie en snelheid van je templates aanzienlijk.
provider: deepseek
model: deepseek-chat
Je code bevat enkele problemen die de prestaties negatief beïnvloeden. Hier zijn mijn suggesties voor optimalisatie:
## Probleemanalyse:
1. **Dubbele database query**: Je voert dezelfde query twee keer uit in geneste loops
2. **Onnodige `.all()` call**: Dit voert de query direct uit in plaats van lazy loading te gebruiken
3. **Syntactische fouten**: Er ontbreken closing tags en er is een dubbele `</h2>`
## Geoptimaliseerde code:
```twig
{# Query eenmalig uitvoeren en resultaten opslaan #}
{% set nieuwsEntries = craft.entries()
.section('nieuws')
.limit(10) %}
{# Gebruik eager loading voor betere prestaties #}
{% do nieuwsEntries.all() %}
{% for entry in nieuwsEntries %}
<h2>{{ entry.title }}</h2>
<p>{{ entry.summary }}</p>
{% endfor %}
```
## Aanvullende optimalisatietips:
1. **Gebruik caching**:
```twig
{% cache globally using key "nieuws-lijst" %}
{# Je template code hier #}
{% endcache %}
```
2. **Eager loading voor gerelateerde content**:
```twig
{% set nieuwsEntries = craft.entries()
.section('nieuws')
.with(['afbeelding', 'categorie'])
.limit(10) %}
```
3. **Paginering i.p.v. vaste limit**:
```twig
{% set nieuwsEntries = craft.entries()
.section('nieuws')
.limit(10)
.all() %}
```
Deze aanpassingen zullen je laadtijden aanzienlijk verbeteren door database queries te minimaliseren en Twig efficiënter te gebruiken.