280
Chapter 13: Designing and Optimizing a ColdFusion Application
</tr>
</cfoutput>
</table>
</cfsavecontent>
<!--- Save the results in the Application scope --->
<cflock scope="Application" type="Exclusive" timeout=30>
<cfset Application.productCache = ProductCache>
</cflock>
</cfif>
<!--- Use the Application scope variable to display the sale items --->
<cflock scope="application" timeout="20" type="readonly">
<cfoutput>#Application.ProductCache#</cfoutput>
</cflock>
Reviewing the code
The following table describes the code and its function:
Code
Description
<cfoutput>
Welcome to our home page.<br>
The time is #TimeFormat(Now())#.<br>
Your lucky number is:
#RandRange(1,1000)#<br>
<hr><br>
</cfoutput>
Displays the part of the page that must change each
time.
<cflock scope="application" timeout="20"
type="readonly">
<cfset IsCached = IsDefined
("Application.ProductCache")>
</cflock>
Inside a read-only lock, tests to see if the part of the
page that changes infrequently is already cached in
the Application scope, and sets a boolean flag
variable with the result.
<cfif not IsCached>
<cfsavecontent
variable="ProductCache">
If the flag is False, uses a
cfsavecontent
tag to save
output in a Variables scope variable. Using the
Variables scope eliminates the need to do a query
(which can take a long time) in an Application scope
lock.
<cfquery dataSource="ProductInfo"
name="specialQuery">
SELECT ItemName, Item_link,
Description, BasePrice
FROM SaleProducts
</cfquery>
Queries the database to get the necessary
information
<h2>Check out the following specials</
h2>
<table>
<cfoutput query="specialQuery">
<cfset salePrice = BasePrice * .8>
<tr>
<td>#ItemNAme#</td>
<td>#Item_Link#</td>
<td>#Description#</td>
<td>#salePrice#</td>
</tr>
</cfoutput>
</table>
Displays the sale items in a table. Inside a
cfoutput
tag, calculates each item’s sale price and displays the
item information in a table row.
Because this code is inside a
cfsavecontent
tag,
ColdFusion does not display the results of the
cfoutput
tag. Instead, it saves the formatted output as
HTML and text in the ProductCache variable.
</cfsavecontent>
Ends the
cfsavecontent
tag block.
Summary of Contents for ColdFusion MX
Page 1: ...Developing ColdFusion MX Applications...
Page 22: ...22 Contents...
Page 38: ......
Page 52: ...52 Chapter 2 Elements of CFML...
Page 162: ......
Page 218: ...218 Chapter 10 Writing and Calling User Defined Functions...
Page 250: ...250 Chapter 11 Building and Using ColdFusion Components...
Page 264: ...264 Chapter 12 Building Custom CFXAPI Tags...
Page 266: ......
Page 314: ...314 Chapter 14 Handling Errors...
Page 344: ...344 Chapter 15 Using Persistent Data and Locking...
Page 349: ...About user security 349...
Page 357: ...Security scenarios 357...
Page 370: ...370 Chapter 16 Securing Applications...
Page 388: ...388 Chapter 17 Developing Globalized Applications...
Page 408: ...408 Chapter 18 Debugging and Troubleshooting Applications...
Page 410: ......
Page 426: ...426 Chapter 19 Introduction to Databases and SQL...
Page 476: ...476 Chapter 22 Using Query of Queries...
Page 534: ...534 Chapter 24 Building a Search Interface...
Page 556: ...556 Chapter 25 Using Verity Search Expressions...
Page 558: ......
Page 582: ...582 Chapter 26 Retrieving and Formatting Data...
Page 668: ......
Page 734: ...734 Chapter 32 Using Web Services...
Page 760: ...760 Chapter 33 Integrating J2EE and Java Elements in CFML Applications...
Page 786: ...786 Chapter 34 Integrating COM and CORBA Objects in CFML Applications...
Page 788: ......