Ajax (Asynchronous JavaScript and XML) is a set of web technologies for creating interactive web applications. Ajax applications typically combine:
- HTML and CSS for formatting and displaying information.
- JavaScript for client-side dynamic scripting
- Asynchronous communication with a server using the XMLHttpRequest function.
- XML or JSON (JavaScript Object Notation) as a technique for serializing and transferring data between the sever and the client.
ColdFusion provides a number of tools that simplify using Ajax technologies for dynamic applications. By using ColdFusion tags and functions, you can easily create complex Ajax applications.
ColdFusion Ajax features
ColdFusion provides data management and development, and user interface Ajax features.
Data and development features
ColdFusion data and development features help you develop effective Ajax applications that use ColdFusion to provide dynamic data. They include many features that you can use with other Ajax frameworks, including Spry.
- ColdFusion supports data binding in many tags. Binding allows an application that uses form and display tags, such as cfselect and cfwindow, to dynamically display information based on form input. In the simplest application, you display form data directly in other form fields, but usually you pass form field data as parameters to CFC or JavaScript functions or URLs and use the results to control the display. Data binding uses events to automatically update the display, typically when the bound input data changes. You can also use the ColdFusion.Ajax.submitForm JavaScript function to get the current value of any bindable element.
- The cfajaxproxy tag creates a JavaScript proxy that represents a CFC on the server. It manages the communication between the client and server, and provides several functions to simplify and manage handling the communication and its results. This tag provides access to all remote functions in a CFC. It also lets applications, including applications that use Ajax frameworks or widget sets such as Dojo or Backbase, easily access data from ColdFusion servers.
- The cfsprydataset tag lets you use bind expressions to dynamically create and update Adobe Spry data sets. Applications that use Spry framework elements, such as dynamic regions, can use this tag to populate the Spry elements with information based on ColdFusion control input. This feature lets you easily intermix Spry and ColdFusion controls.
- The cfajaximport tag specifies the location of the JavaScript and CSS files that a ColdFusion page imports. You can also use this tag to selectively import files required by specific Ajax-based tags and functions. The ability to change the file location lets you support a wide range of configurations and use advanced techniques, such as application-specific styles. Although ColdFusion can automatically determine and import the required files, sometimes you must manually specify the information.
- ColdFusion provides several CFML functions that let you create and consume JSON format data on the server and let you prepare data for use in HTML format cfgrid tags.
- You can display a floating logging window that shows client-side logging and debugging information. ColdFusion Ajax features display information and error messages in this window, and several logging tags let you display additional information, including the structure of complex JavaScript variables.
User interface features
- Ajax-based HTML controls including the following:
- Tree
- Grid
- Rich text editor
- Date field
- Autosuggest text input
- Pop-up menus and menu bars.
- Container tags that provide bordered, box, and tabbed layouts, pop-up windows, and pod regions.
- A cfdiv container tag that enables asynchronous form submission and binding in HTML div and other regions.
- Tooltips for specific controls and HTML regions.
For detailed information on using the UI features, see Using Ajax UI Components and Features.
ColdFusion Ajax tags
The following table lists ColdFusion Ajax-related tags and functions, including all tags that support Ajax-based features. It does not include subtags that are used only in the bodies of the listed tags: