|
Best practices for Flash forms
Minimizing form recompilationFlash forms are sent to
the client as SWF files, which ColdFusion must compile from your
CFML code. The following techniques can help limit how frequently ColdFusion
must recompile a Flash form.
Only data must be dynamic. Whenever a variable name changes,
or a form characteristic, such as an element width or a label changes,
the Flash output must be recompiled. If a data value changes, the
output does not need to be recompiled.
Use cfformgroup type="repeater" if you must
loop no more than ten times over no more than ten elements. This
tag does not require recompiling when the number of elements changes.
It does have a processing overhead that increases with the number
of loops and elements, however, so for large data sets or many elements,
it is often more efficient not to use the repeater.
Caching data in Flash formsThe cfform tag timeout attribute
specifies how many seconds ColdFusion retains Flash form data on
the server. When a Flash form is generated, the values for the form
are stored in memory on the server. When the Flash form is loaded on
the client, it requests these form values from the server. If this
attribute is 0, the default, the data on the server is immediately
deleted after the data has been requested from the Flash form.
A Flash form can be reloaded multiple times if a user displays
a page with a Flash form, goes to another page, and uses the browser
Back button to return to the page with the form. This behavior is
common with search forms, login forms, and the like. When the user
returns to the original page:
If the timeout value is 0, or the time-out
period has expired, the data is no longer available, and ColdFusion
returns a data-expired exception to the browser; in this case, the
browser typically tells the user to reload the page.
If the time-out has not expired, the browser displays the
original data.
If your form data contains sensitive information,
such as credit card numbers or social security numbers, leave the
time-out set to 0. Otherwise, consider setting a time-out value
that corresponds to a small number of minutes.
Using Flash forms in a clustered environmentFlash
forms require sticky sessions when used in a cluster.
|