A scripted mobile channel has three components: scripts, data, and a CDF file. The scripts define templates to specify the appearance and layout of the channel, subchannels, and item views. The data is typically dynamic and is formatted in a manner specific to the content. Scripts are written in a subset of Visual Basic Script (VBS). The scripting environment is similar to the scripting environment of the Active Server Pages in Internet Information Server (IIS).
Data is packaged in small and simple text files for use with devices that have limited bandwidth and storage capacity. This data is readily accessible through the script. Mobile Channels stores scripts, data files, and all content on the Windows CE-based device in a special-purpose cache similar to the IE4 cache. URL references are made to the Mobile Channels Transport Protocol. This transport then invokes the script interpreter to run scripts to access data and CDF files. Both scripts and data are fetched from the cache. The interpreter outputs pure HTML back to the transport and eventually to the Channel Browser application.
At display time, scripts are executed on the Windows CE-based device to construct HTML pages. These pages render data in a browser using structural information contained in the CDF file. For example, a script might determine what subchannel of a CDF file is being displayed and fetch the title and logo for that subchannel from the CDF file, incorporating them into the page layout. Items or additional subchannels within the subchannel may be fetched from the CDF file to present an index to the subchannel. Item titles can be fetched directly from the items.
Although this blending of scripts, data items, and CDF files is more complex than a standard channel or Web page, it is beneficial when properly applied. By separating the content into a template and data, Mobile Channels is able to deliver content in small segments of data instead of full HTML pages. This incremental approach makes it economical to update time-critical information. It also makes it possible to create default, or generic, scripts that can render channels, subchannels, and data, if a script is missing.