Coldfusion do’s and dont’s 2: rendering

Geschreven door: op donderdag 30 juni 2016

Leestijd:

In een vorig artikel heb ik geschreven hoe je in ColdFusion veilig en beter om kunt gaan met de database. In dit artikel zal ik enkele functies bespreken die helpen bij het plaatsen van content om de website met behulp van ColdFusion.

In Nederland maken maar weinig webontwikkelaars gebruik van onder andere ColdFusion, Sigma Solutions is daar één van. Hoewel modernere en betere ontwikkelomgevingen voor handen zijn, zoals .NET van Microsoft, waarin de nieuwste release van het Accessify WCMS is ontwikkeld, zijn er nog altijd websites en applicaties die ontwikkeld zijn in ColdFusion. Sigma Solutions raadt aan deze te migreren naar een nieuwe taal of anders om ze correct te beheren.

ColdFusion is een taal op zich, gebaseerd op Java, met z’n specifieke eigenaardigheden. Door de ervaring die Sigma Solutions heeft met ColdFusion, weten wij waar we op moeten letten en wat mogelijke valkuilen zijn.

ColdFusion gebruikt components en templates om informatie te delen met de rest van de wereld. Components worden gebruikt als controller, templates zijn de view.

Uitgebreide tekensets met CFProcessingDirective

Pagina’s (of views) die getoond worden aan de bezoeker hebben een bepaalde encoding. Hiermee kan worden aangegeven welke tekenset getoond kan worden in de browser. De algemeen gebruikte tekenset UTF-8 bezit vele duizenden karakters, maar om deze te gebruiken, dient wel aangegeven te worden dat de pagina deze kan tonen.

Er zijn veel manieren om dit te doen, waaronder via de CF-tag CFPRocessingDirective. Deze tag zet je bovenaan een template en als attribuut geef je op pageEncoding=”<tekenset>”, bijvoorbeeld <cfprocessingdirective pageEncoding=”utf-8” />.

Let op: voor elke ColdFusion-template moet dit worden opgegeven, dus ook als deze via CFINCLUDE is meegenomen.

Daarnaast kan je het attribuut suppressWhitespace gebruiken om alle overbodige witruimte die gegenereerd wordt doorColdFusion te verwijderen.

In CFscript gebruik je hiervoor de volgende methode:

component{

pageencoding "utf-8" ;
 

Zie http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-76de.html voor meer mogelijkheden.

Content opslaan met Cfsavecontent

Content die door ColdFusion gegenereerd wordt, wordt direct naar de browser geschreven. Er zijn echter gevallen waarbij je de content eerst wilt maken en daarna pas sturen naar de browser, bijvoorbeeld om het te cachen of om bepaalde waardes te vervangen.

Je kunt een variabele maken en met &= tekst toevoegen aan de variabele, bijvoorbeeld:

<cfset tekst = “<h1>Hier wat tekst.</h1>” />

<cfset tekst &= “Nog meer tekst…<br />” />

 

Of:

tekst = “<h1>Hier wat tekst.</h1>”;

tekst &= “Nog meer tekst…<br />”;

 

Deze manier is echter nogal omslachtig, omdat er erg veel code wordt gebruikt om slechts wat content te genereren. Daarnaast is het lastig te onderhouden.

Er is hiervoor een alternatief: Cfsavecontent. Met Cfsavecontent plaats je de content die je in een variabele wilt opslaan tussen het begin en het einde van de tag en hoef je je niet druk te maken om regeleindes. Door <cfoutput> erin te zetten, kun je de content ook nog parsen.

Voorbeeld:


<cfsavecontent variable="tekst" >
            #bepaalde tekst#

            <cfoutput>
                        #now()#
            </cfoutput>
</cfsavecontent>

<cfoutput>#tekst#</cfoutput>

Of:

<cfscript>

            savecontent variable="tekst2" {

                        WriteOutput("

                                   ##bepaalde tekst##

                                                                      

                                   <br />

 

                                   #now()#

                        ");

            }

</cfscript>

<cfoutput>#tekst2#</cfoutput>

Daarnaast is CFSaveContent veel sneller bij het samenstellen van lange stukken tekst, zie Don't optimise your code (annexe).

Veilig tonen informatie van derden

In het volgende artikel wordt uitgelegd welke do’s en don’ts er zijn op het gebied van het (veilig) tonen van informatie van derden op je website.


Op De Hoogte Blijven?

Online Succes realiseren is een vak, een vak wat wij verstaan en waarover we je graag vertellen. Schrijf je in voor onze maandelijkse nieuwsbrief en blijf op de hoogte van trends, thema’s en succesverhalen.

Aanhef

Andere blogartikelen

Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Allrig is de alles in een leverancier binnen de energie-industrie
Aliancys is een toonaangevend wereldwijd bedrijf actief in de verkoop van kwaliteitsharsen
ERIKS is een toonaangevende en innovatieve leverancier aan de procesindustrie en aan machinebouwers, die zowel de rol van specialist als die van brede MRO-leverancier vervult
Industrieel dienstverlener Heinen & Hopman Engineering uit Bunschoten is dé wereldwijde specialist op het gebied van klimaatbeheersing
Handicare is een internationale organisatie die ouderen helpt om hun dagelijks leven gemakkelijker te maken door het produceren van hoogwaardige trapliften
Onze Middelen en Technologieën
microsoft silver partner
Adobe partner
fd gazellen 2017
Google analytics
Google adwords
TelefoonE-mail