Skip to main content
Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.

What Happens When I Cache Application.cfc Within The APPLICATION Scope?

By Ben Nadel on
Tags: ColdFusion

Pretty much nothing exciting :) But I wanted to try it to see if stuff would blow up. If nothing else, it proves that a new Application.cfc instance is created for every single page request. This test is super, ultra simple. Here is my Application.cfc ColdFusion component:

<cfcomponent>

	<cfset THIS.Name = "App Cache Test" />
	<cfset THIS.ApplicationTimeout = CreateTimeSpan( 0, 0, 5, 0 ) />

	<!---
		Here, I am creating a unique ID for this Application.cfc
		just to help see if one instance is the same as another.
	--->
	<cfset THIS.ID = CreateUUID() />

	<cffunction
		name="OnRequestStart"
		access="public"
		returntype="boolean"
		output="false">

		<!---
			Param an array in the APPLICATION scope to hold all
			of our App.cfc instances.
		--->
		<cfparam
			name="APPLICATION.Apps"
			type="array"
			default="#ArrayNew( 1 )#"
			/>

		<!---
			Append THIS application.cfc instance to our
			cached array.
		--->
		<cfset ArrayAppend(
			APPLICATION.Apps,
			THIS
			) />

		<cfreturn true />
	</cffunction>

</cfcomponent>

Then, my index.cfm page merely CFDumps out the APPLICATION scope:

<!---
	Dump out the APPLICATION scope. Put in a TOP 10 to
	make sure nothing goes crazy.
--->
<cfdump
	var="#APPLICATION#"
	top="10"
	/>

After running that page a few times, here is what I get:

Application.cfc Caching In APPLICATION Scope

As you can see, nothing exciting going on here. At least it didn't go kabooom!


Reader Comments