webgui/www/extras/yui/docs/YAHOO.util.DataSourceBase.html
JT Smith 20f8df1291 upgrading to YUI 2.6
data tables are going to need some work yet, but the other stuff seems to be working 100%
2008-10-22 23:53:29 +00:00

2786 lines
140 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>API: datasource YAHOO.util.DataSourceBase (YUI Library)</title>
<link rel="stylesheet" type="text/css" href="assets/api.css">
<script type="text/javascript" src="assets/api-js"></script>
<script type="text/javascript" src="assets/ac-js"></script>
</head>
<body id="yahoo-com">
<div id="doc3" class="yui-t2">
<div id="hd">
<a href="http://developer.yahoo.com/yui/"><h1>Yahoo! UI Library</h1></a>
<h3>DataSource Utility&nbsp; <span class="subtitle">2.6.0</span></h3>
<p>
<a href="./index.html">Yahoo! UI Library</a>
&gt; <a href="./module_datasource.html">datasource</a>
&gt; YAHOO.util.DataSourceBase
</p>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<form name="yui-classopts-form">
<span id="classopts"><input type="checkbox" name="showprivate" id="showprivate" /> <label for="showprivate">Show Private</label></span>
<span id="classopts"><input type="checkbox" name="showprotected" id="showprotected" /> <label for="showprotected">Show Protected</label></span>
<span id="classopts"><input type="checkbox" name="showdeprecated" id="showdeprecated" /> <label for="showdeprecated">Show Deprecated</label></span>
</form>
<h2>
Class <b>YAHOO.util.DataSourceBase</b>
<span class="extends">
</span>
<span class="extends">
</span>
</code>
</h2>
<!-- class tree goes here -->
<dl class="subclasses">
<dt>Known Subclasses:</dd>
<dd>
<a href="YAHOO.util.LocalDataSource.html">YAHOO.util.LocalDataSource</a>
<a href="YAHOO.util.XHRDataSource.html">YAHOO.util.XHRDataSource</a>
<a href="YAHOO.util.FunctionDataSource.html">YAHOO.util.FunctionDataSource</a>
<a href="YAHOO.util.ScriptNodeDataSource.html">YAHOO.util.ScriptNodeDataSource</a>
</dd>
</dl>
<div class="summary description">
Base class for the YUI DataSource utility.
</div>
<div class="section constructor details">
<h3 id="constructor">Constructor</h3>
<div class="content">
<div class="detail">
<strong>YAHOO.util.DataSourceBase</strong>
<code>
(
oLiveData
,
oConfigs
)
</code>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oLiveData
&lt;HTMLElement&gt;
</code>
Pointer to live data.
</dd>
<dd>
<code>oConfigs
&lt;object&gt;
</code>
(optional) Object literal of configuration values.
</dd>
</dl>
</div>
</div>
</div>
</div>
<div class="section field details">
<h3 id="properties">Properties</h3>
<div class="content">
<div class="private">
<h4><a name="property__aCache">_aCache</a>
<code>- private Object[]</code>
</h4>
<div class="detail">
<div class="description">
Local cache of data result object literals indexed chronologically.
</div>
</div>
<hr />
</div>
<div class="private">
<h4><a name="property__aIntervals">_aIntervals</a>
<code>- private Array</code>
</h4>
<div class="detail">
<div class="description">
Array of polling interval IDs that have been enabled, needed to clear all intervals.
</div>
</div>
<hr />
</div>
<div class="private">
<h4><a name="property__oQueue">_oQueue</a>
<code>- private Object</code>
</h4>
<div class="detail">
<div class="description">
Local queue of request connections, enabled if queue needs to be managed.
</div>
</div>
<hr />
</div>
<div class="private">
<h4><a name="property__sName">_sName</a>
<code>- private String</code>
</h4>
<div class="detail">
<div class="description">
Name of DataSource instance.
</div>
</div>
<hr />
</div>
<div class="">
<h4><a name="property_DataSource.Parser">DataSource.Parser</a>
<code>- static Object</code>
</h4>
<div class="detail">
<div class="description">
Data parsing functions.
</div>
</div>
<hr />
</div>
<div class="private">
<h4><a name="property_DataSourceBase._nIndex">DataSourceBase._nIndex</a>
<code>- private static Number</code>
</h4>
<div class="detail">
<div class="description">
Internal class variable to index multiple DataSource instances.
</div>
</div>
<hr />
</div>
<div class="private">
<h4><a name="property_DataSourceBase._nTransactionId">DataSourceBase._nTransactionId</a>
<code>- private static Number</code>
</h4>
<div class="detail">
<div class="description">
Internal class variable to assign unique transaction IDs.
</div>
</div>
<hr />
</div>
<div class="">
<h4><a name="property_dataType">dataType</a>
<code>- Number</code>
</h4>
<div class="detail">
<div class="description">
Where the live data is held:
<dl>
<dt>TYPE_UNKNOWN</dt>
<dt>TYPE_LOCAL</dt>
<dt>TYPE_XHR</dt>
<dt>TYPE_SCRIPTNODE</dt>
<dt>TYPE_JSFUNCTION</dt>
</dl>
</div>
</div>
<div class="default">
Default Value: YAHOO.util.DataSourceBase.TYPE_UNKNOWN
</div>
<hr />
</div>
<div class="">
<h4><a name="property_ERROR_DATAINVALID">ERROR_DATAINVALID</a>
<code>- final String</code>
</h4>
<div class="detail">
<div class="description">
Error message for invalid dataresponses.
</div>
</div>
<div class="default">
Default Value: "Invalid data"
</div>
<hr />
</div>
<div class="">
<h4><a name="property_ERROR_DATANULL">ERROR_DATANULL</a>
<code>- final String</code>
</h4>
<div class="detail">
<div class="description">
Error message for null data responses.
</div>
</div>
<div class="default">
Default Value: "Null data"
</div>
<hr />
</div>
<div class="">
<h4><a name="property_liveData">liveData</a>
<code>- Object</code>
</h4>
<div class="detail">
<div class="description">
Pointer to live database.
</div>
</div>
<hr />
</div>
<div class="">
<h4><a name="property_maxCacheEntries">maxCacheEntries</a>
<code>- Number</code>
</h4>
<div class="detail">
<div class="description">
Max size of the local cache. Set to 0 to turn off caching. Caching is
useful to reduce the number of server connections. Recommended only for data
sources that return comprehensive results for queries or when stale data is
not an issue.
</div>
</div>
<div class="default">
Default Value: 0
</div>
<hr />
</div>
<div class="">
<h4><a name="property_responseSchema">responseSchema</a>
<code>- Object</code>
</h4>
<div class="detail">
<div class="description">
Response schema object literal takes a combination of the following properties:
<dl>
<dt>resultsList</dt> <dd>Pointer to array of tabular data</dd>
<dt>resultNode</dt> <dd>Pointer to node name of row data (XML data only)</dd>
<dt>recordDelim</dt> <dd>Record delimiter (text data only)</dd>
<dt>fieldDelim</dt> <dd>Field delimiter (text data only)</dd>
<dt>fields</dt> <dd>Array of field names (aka keys), or array of object literals
such as: {key:"fieldname",parser:YAHOO.util.DataSourceBase.parseDate}</dd>
<dt>metaFields</dt> <dd>Object literal of keys to include in the oParsedResponse.meta collection</dd>
<dt>metaNode</dt> <dd>Name of the node under which to search for meta information in XML response data</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4><a name="property_responseType">responseType</a>
<code>- Number</code>
</h4>
<div class="detail">
<div class="description">
Format of response:
<dl>
<dt>TYPE_UNKNOWN</dt>
<dt>TYPE_JSARRAY</dt>
<dt>TYPE_JSON</dt>
<dt>TYPE_XML</dt>
<dt>TYPE_TEXT</dt>
<dt>TYPE_HTMLTABLE</dt>
</dl>
</div>
</div>
<div class="default">
Default Value: YAHOO.util.DataSourceBase.TYPE_UNKNOWN
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_HTMLTABLE">TYPE_HTMLTABLE</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is an HTML TABLE element. Data is parsed out of TR elements from all TBODY elements.
</div>
</div>
<div class="default">
Default Value: 6
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_JSARRAY">TYPE_JSARRAY</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is a JavaScript Array.
</div>
</div>
<div class="default">
Default Value: 0
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_JSFUNCTION">TYPE_JSFUNCTION</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is a JavaScript Function.
</div>
</div>
<div class="default">
Default Value: 1
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_JSON">TYPE_JSON</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is JSON.
</div>
</div>
<div class="default">
Default Value: 3
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_LOCAL">TYPE_LOCAL</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is local.
</div>
</div>
<div class="default">
Default Value: 8
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_SCRIPTNODE">TYPE_SCRIPTNODE</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is hosted on a server via a dynamic script node.
</div>
</div>
<div class="default">
Default Value: 7
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_TEXT">TYPE_TEXT</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is plain text.
</div>
</div>
<div class="default">
Default Value: 5
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_UNKNOWN">TYPE_UNKNOWN</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is unknown.
</div>
</div>
<div class="default">
Default Value: -1
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_XHR">TYPE_XHR</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is hosted on a server via an XHR connection.
</div>
</div>
<div class="default">
Default Value: 2
</div>
<hr />
</div>
<div class="">
<h4><a name="property_TYPE_XML">TYPE_XML</a>
<code>- final Number</code>
</h4>
<div class="detail">
<div class="description">
Type is XML.
</div>
</div>
<div class="default">
Default Value: 4
</div>
<hr />
</div>
</div>
</div>
<div class="section method details">
<h3 id="methods">Methods</h3>
<div class="content">
<div class="">
<h4>
<a name="method_addToCache">addToCache</a></h4>
<div class="detail">
<code>
void
<strong>addToCache</strong>
(
oRequest
,
oResponse
)
</code>
<div class="description">
Adds a new item to the cache. If cache is full, evicts the stalest item
before adding the new item.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oResponse &lt;Object&gt;</code>
Response object to cache.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
void
</code></dt>
<dd></dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_clearAllIntervals">clearAllIntervals</a></h4>
<div class="detail">
<code>
void
<strong>clearAllIntervals</strong>
(
)
</code>
<div class="description">
Disables all known polling intervals.
</div>
<div class="description">
<dl>
<dt>Returns:
<code>
void
</code></dt>
<dd></dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_clearInterval">clearInterval</a></h4>
<div class="detail">
<code>
void
<strong>clearInterval</strong>
(
nId
)
</code>
<div class="description">
Disables polling mechanism associated with the given interval ID.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>nId &lt;Number&gt;</code>
Interval ID.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
void
</code></dt>
<dd></dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_DataSourceBase.parseDate">DataSourceBase.parseDate</a></h4>
<div class="detail">
<code>
static
Date
<strong>DataSourceBase.parseDate</strong>
(
oData
)
</code>
<div class="description">
Converts data to type Date.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oData &lt;Date | String | Number&gt;</code>
Data to convert.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Date
</code></dt>
<dd>A Date instance.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_DataSourceBase.parseNumber">DataSourceBase.parseNumber</a></h4>
<div class="detail">
<code>
static
Number
<strong>DataSourceBase.parseNumber</strong>
(
oData
)
</code>
<div class="description">
Converts data to type Number.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oData &lt;String | Number | Boolean | Null&gt;</code>
Data to convert. Beware, null
returns as 0.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Number
</code></dt>
<dd>A number, or null if NaN.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_DataSourceBase.parseString">DataSourceBase.parseString</a></h4>
<div class="detail">
<code>
static
Number
<strong>DataSourceBase.parseString</strong>
(
oData
)
</code>
<div class="description">
Converts data to type String.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oData &lt;String | Number | Boolean | Date | Array | Object&gt;</code>
Data to parse.
The special values null and undefined will return null.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Number
</code></dt>
<dd>A string, or null.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_doBeforeCallback">doBeforeCallback</a></h4>
<div class="detail">
<code>
Object
<strong>doBeforeCallback</strong>
(
oRequest
,
oFullResponse
,
oParsedResponse
,
oCallback
)
</code>
<div class="description">
Overridable method gives implementers access to the original full response and
the parsed response (parsed against the given schema) before the data
is added to the cache (if applicable) and then sent back to callback function.
This is your chance to access the raw response and/or populate the parsed
response with any custom data.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oFullResponse &lt;Object&gt;</code>
The full response from the live database.
</dd>
<dd>
<code>oParsedResponse &lt;Object&gt;</code>
The parsed response to return to calling object.
</dd>
<dd>
<code>oCallback &lt;Object&gt;</code>
The callback object.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Parsed response object.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_doBeforeParseData">doBeforeParseData</a></h4>
<div class="detail">
<code>
Object
<strong>doBeforeParseData</strong>
(
oRequest
,
oFullResponse
,
oCallback
)
</code>
<div class="description">
Overridable method gives implementers access to the original full response
before the data gets parsed. Implementers should take care not to return an
unparsable or otherwise invalid response.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oFullResponse &lt;Object&gt;</code>
The full response from the live database.
</dd>
<dd>
<code>oCallback &lt;Object&gt;</code>
The callback object.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Full response for parsing.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_flushCache">flushCache</a></h4>
<div class="detail">
<code>
void
<strong>flushCache</strong>
(
)
</code>
<div class="description">
Flushes cache.
</div>
<div class="description">
<dl>
<dt>Returns:
<code>
void
</code></dt>
<dd></dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_getCachedResponse">getCachedResponse</a></h4>
<div class="detail">
<code>
Object
<strong>getCachedResponse</strong>
(
oRequest
,
oCallback
,
oCaller
)
</code>
<div class="description">
Overridable method passes request to cache and returns cached response if any,
refreshing the hit in the cache as the newest item. Returns null if there is
no cache hit.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oCallback &lt;Object&gt;</code>
Callback object.
</dd>
<dd>
<code>oCaller &lt;Object&gt;</code>
(deprecated) Use callback object.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Cached response object or null.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_handleResponse">handleResponse</a></h4>
<div class="detail">
<code>
void
<strong>handleResponse</strong>
(
oRequest
,
oRawResponse
,
oCallback
,
oCaller
,
tId
)
</code>
<div class="description">
Receives raw data response and type converts to XML, JSON, etc as necessary.
Forwards oFullResponse to appropriate parsing function to get turned into
oParsedResponse. Calls doBeforeCallback() and adds oParsedResponse to
the cache when appropriate before calling issueCallback().
The oParsedResponse object literal has the following properties:
<dl>
<dd><dt>tId {Number}</dt> Unique transaction ID</dd>
<dd><dt>results {Array}</dt> Array of parsed data results</dd>
<dd><dt>meta {Object}</dt> Object literal of meta values</dd>
<dd><dt>error {Boolean}</dt> (optional) True if there was an error</dd>
<dd><dt>cached {Boolean}</dt> (optional) True if response was cached</dd>
</dl>
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object
</dd>
<dd>
<code>oRawResponse &lt;Object&gt;</code>
The raw response from the live database.
</dd>
<dd>
<code>oCallback &lt;Object&gt;</code>
Callback object literal.
</dd>
<dd>
<code>oCaller &lt;Object&gt;</code>
(deprecated) Use oCallback.scope.
</dd>
<dd>
<code>tId &lt;Number&gt;</code>
Transaction ID.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
void
</code></dt>
<dd></dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_isCacheHit">isCacheHit</a></h4>
<div class="detail">
<code>
Boolean
<strong>isCacheHit</strong>
(
oRequest
,
oCachedRequest
)
</code>
<div class="description">
Default overridable method matches given request to given cached request.
Returns true if is a hit, returns false otherwise. Implementers should
override this method to customize the cache-matching algorithm.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oCachedRequest &lt;Object&gt;</code>
Cached request object.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Boolean
</code></dt>
<dd>True if given request matches cached request, false otherwise.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_issueCallback">issueCallback</a></h4>
<div class="detail">
<code>
static
void
<strong>issueCallback</strong>
(
callback
,
params
,
error
,
scope
)
</code>
<div class="description">
Executes a configured callback. For object literal callbacks, the third
param determines whether to execute the success handler or failure handler.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>callback &lt;Function|Object&gt;</code>
the callback to execute
</dd>
<dd>
<code>params &lt;Array&gt;</code>
params to be passed to the callback method
</dd>
<dd>
<code>error &lt;Boolean&gt;</code>
whether an error occurred
</dd>
<dd>
<code>scope &lt;Object&gt;</code>
the scope from which to execute the callback
(deprecated - use an object literal callback)
</dd>
</dl>
<dl>
<dt>Returns:
<code>
void
</code></dt>
<dd></dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_makeConnection">makeConnection</a></h4>
<div class="detail">
<code>
Number
<strong>makeConnection</strong>
(
oRequest
,
oCallback
,
oCaller
)
</code>
<div class="description">
Overridable default method generates a unique transaction ID and passes
the live data reference directly to the handleResponse function. This
method should be implemented by subclasses to achieve more complex behavior
or to access remote data.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oCallback &lt;Object&gt;</code>
Callback object literal.
</dd>
<dd>
<code>oCaller &lt;Object&gt;</code>
(deprecated) Use oCallback.scope.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Number
</code></dt>
<dd>Transaction ID.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_parseArrayData">parseArrayData</a></h4>
<div class="detail">
<code>
Object
<strong>parseArrayData</strong>
(
oRequest
,
oFullResponse
)
</code>
<div class="description">
Overridable method parses Array data into a response object.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oFullResponse &lt;Object&gt;</code>
The full Array from the live database.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Parsed response object with the following properties:<br>
- results (Array) Array of parsed data results<br>
- error (Boolean) True if there was an error</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_parseData">parseData</a></h4>
<div class="detail">
<code>
Object} Parsed response object with the following properties:<br>
- results {Array} Array of parsed data results<br>
- meta {Object} Object literal of meta values<br>
- error {Boolean
<strong>parseData</strong>
(
oRequest
,
oFullResponse
)
</code>
<div class="description">
Overridable method parses data of generic RESPONSE_TYPE into a response object.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oFullResponse &lt;Object&gt;</code>
The full Array from the live database.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object} Parsed response object with the following properties:<br>
- results {Array} Array of parsed data results<br>
- meta {Object} Object literal of meta values<br>
- error {Boolean
</code></dt>
<dd>(optional) True if there was an error<br></dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_parseHTMLTableData">parseHTMLTableData</a></h4>
<div class="detail">
<code>
Object
<strong>parseHTMLTableData</strong>
(
oRequest
,
oFullResponse
)
</code>
<div class="description">
Overridable method parses an HTML TABLE element reference into a response object.
Data is parsed out of TR elements from all TBODY elements.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oFullResponse &lt;Object&gt;</code>
The full HTML element reference from the live database.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Parsed response object with the following properties<br>
- results (Array) Array of parsed data results<br>
- error (Boolean) True if there was an error</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_parseJSONData">parseJSONData</a></h4>
<div class="detail">
<code>
Object
<strong>parseJSONData</strong>
(
oRequest
,
oFullResponse
)
</code>
<div class="description">
Overridable method parses JSON data into a response object.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oFullResponse &lt;Object&gt;</code>
The full JSON from the live database.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Parsed response object with the following properties<br>
- results (Array) Array of parsed data results<br>
- error (Boolean) True if there was an error</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_parseTextData">parseTextData</a></h4>
<div class="detail">
<code>
Object
<strong>parseTextData</strong>
(
oRequest
,
oFullResponse
)
</code>
<div class="description">
Overridable method parses plain text data into a response object.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oFullResponse &lt;Object&gt;</code>
The full text response from the live database.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Parsed response object with the following properties:<br>
- results (Array) Array of parsed data results<br>
- error (Boolean) True if there was an error</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_parseXMLData">parseXMLData</a></h4>
<div class="detail">
<code>
Object
<strong>parseXMLData</strong>
(
oRequest
,
oFullResponse
)
</code>
<div class="description">
Overridable method parses XML data into a response object.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oFullResponse &lt;Object&gt;</code>
The full XML response from the live database.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Parsed response object with the following properties<br>
- results (Array) Array of parsed data results<br>
- error (Boolean) True if there was an error</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_parseXMLResult">parseXMLResult</a></h4>
<div class="detail">
<code>
Object
<strong>parseXMLResult</strong>
(
result
)
</code>
<div class="description">
Overridable method parses XML data for one result into an object literal.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>result &lt;XML&gt;</code>
XML for one result.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Object
</code></dt>
<dd>Object literal of data for one result.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_sendRequest">sendRequest</a></h4>
<div class="detail">
<code>
Number
<strong>sendRequest</strong>
(
oRequest
,
oCallback
,
oCaller
)
</code>
<div class="description">
First looks for cached response, then sends request to live data.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oCallback &lt;Object&gt;</code>
An object literal with the following properties:
<dl>
<dt><code>success</code></dt>
<dd>The function to call when the data is ready.</dd>
<dt><code>failure</code></dt>
<dd>The function to call upon a response failure condition.</dd>
<dt><code>scope</code></dt>
<dd>The object to serve as the scope for the success and failure handlers.</dd>
<dt><code>argument</code></dt>
<dd>Arbitrary data that will be passed back to the success and failure handlers.</dd>
</dl>
</dd>
<dd>
<code>oCaller &lt;Object&gt;</code>
(deprecated) Use oCallback.scope.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Number
</code></dt>
<dd>Transaction ID, or null if response found in cache.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_setInterval">setInterval</a></h4>
<div class="detail">
<code>
Number
<strong>setInterval</strong>
(
nMsec
,
oRequest
,
oCallback
,
oCaller
)
</code>
<div class="description">
Sets up a polling mechanism to send requests at set intervals and forward
responses to given callback.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>nMsec &lt;Number&gt;</code>
Length of interval in milliseconds.
</dd>
<dd>
<code>oRequest &lt;Object&gt;</code>
Request object.
</dd>
<dd>
<code>oCallback &lt;Function&gt;</code>
Handler function to receive the response.
</dd>
<dd>
<code>oCaller &lt;Object&gt;</code>
(deprecated) Use oCallback.scope.
</dd>
</dl>
<dl>
<dt>Returns:
<code>
Number
</code></dt>
<dd>Interval ID.</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="method_toString">toString</a></h4>
<div class="detail">
<code>
String
<strong>toString</strong>
(
)
</code>
<div class="description">
Public accessor to the unique name of the DataSource instance.
</div>
<div class="description">
<dl>
<dt>Returns:
<code>
String
</code></dt>
<dd>Unique name of the DataSource instance.</dd>
</dl>
</div>
</div>
<hr />
</div>
</div>
</div>
<div class="section method details">
<h3 id="events">Events</h3>
<div class="content">
<div class="">
<h4>
<a name="event_cacheFlushEvent">cacheFlushEvent</a></h4>
<div class="detail">
<code>
<strong>cacheFlushEvent</strong>
(
)
</code>
<div class="description">
Fired when the local cache is flushed.
</div>
<div class="description">
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="event_cacheRequestEvent">cacheRequestEvent</a></h4>
<div class="detail">
<code>
<strong>cacheRequestEvent</strong>
(
oArgs.request
,
oArgs.callback
,
oArgs.caller
)
</code>
<div class="description">
Fired when a request is made to the local cache.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oArgs.request &lt;Object&gt;</code>
The request object.
</dd>
<dd>
<code>oArgs.callback &lt;Object&gt;</code>
The callback object.
</dd>
<dd>
<code>oArgs.caller &lt;Object&gt;</code>
(deprecated) Use callback.scope.
</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="event_cacheResponseEvent">cacheResponseEvent</a></h4>
<div class="detail">
<code>
<strong>cacheResponseEvent</strong>
(
oArgs.request
,
oArgs.response
,
oArgs.callback
,
oArgs.caller
)
</code>
<div class="description">
Fired when data is retrieved from the local cache.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oArgs.request &lt;Object&gt;</code>
The request object.
</dd>
<dd>
<code>oArgs.response &lt;Object&gt;</code>
The response object.
</dd>
<dd>
<code>oArgs.callback &lt;Object&gt;</code>
The callback object.
</dd>
<dd>
<code>oArgs.caller &lt;Object&gt;</code>
(deprecated) Use callback.scope.
</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="event_dataErrorEvent">dataErrorEvent</a></h4>
<div class="detail">
<code>
<strong>dataErrorEvent</strong>
(
oArgs.request
,
oArgs.callback
,
oArgs.caller
,
oArgs.message
)
</code>
<div class="description">
Fired when an error is encountered with the live data source.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oArgs.request &lt;Object&gt;</code>
The request object.
</dd>
<dd>
<code>oArgs.callback &lt;Object&gt;</code>
The callback object.
</dd>
<dd>
<code>oArgs.caller &lt;Object&gt;</code>
(deprecated) Use callback.scope.
</dd>
<dd>
<code>oArgs.message &lt;String&gt;</code>
The error message.
</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="event_requestEvent">requestEvent</a></h4>
<div class="detail">
<code>
<strong>requestEvent</strong>
(
oArgs.request
,
oArgs.callback
,
oArgs.tId
,
oArgs.caller
)
</code>
<div class="description">
Fired when a request is sent to the live data source.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oArgs.request &lt;Object&gt;</code>
The request object.
</dd>
<dd>
<code>oArgs.callback &lt;Object&gt;</code>
The callback object.
</dd>
<dd>
<code>oArgs.tId &lt;Number&gt;</code>
Transaction ID.
</dd>
<dd>
<code>oArgs.caller &lt;Object&gt;</code>
(deprecated) Use callback.scope.
</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="event_responseCacheEvent">responseCacheEvent</a></h4>
<div class="detail">
<code>
<strong>responseCacheEvent</strong>
(
oArgs.request
,
oArgs.response
,
oArgs.callback
,
oArgs.caller
)
</code>
<div class="description">
Fired when response is cached.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oArgs.request &lt;Object&gt;</code>
The request object.
</dd>
<dd>
<code>oArgs.response &lt;Object&gt;</code>
The parsed response object.
</dd>
<dd>
<code>oArgs.callback &lt;Object&gt;</code>
The callback object.
</dd>
<dd>
<code>oArgs.caller &lt;Object&gt;</code>
(deprecated) Use callback.scope.
</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="event_responseEvent">responseEvent</a></h4>
<div class="detail">
<code>
<strong>responseEvent</strong>
(
oArgs.request
,
oArgs.response
,
oArgs.callback
,
oArgs.tId
,
oArgs.caller
)
</code>
<div class="description">
Fired when live data source sends response.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oArgs.request &lt;Object&gt;</code>
The request object.
</dd>
<dd>
<code>oArgs.response &lt;Object&gt;</code>
The raw response object.
</dd>
<dd>
<code>oArgs.callback &lt;Object&gt;</code>
The callback object.
</dd>
<dd>
<code>oArgs.tId &lt;Number&gt;</code>
Transaction ID.
</dd>
<dd>
<code>oArgs.caller &lt;Object&gt;</code>
(deprecated) Use callback.scope.
</dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="">
<h4>
<a name="event_responseParseEvent">responseParseEvent</a></h4>
<div class="detail">
<code>
<strong>responseParseEvent</strong>
(
oArgs.request
,
oArgs.response
,
oArgs.callback
,
oArgs.caller
)
</code>
<div class="description">
Fired when response is parsed.
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oArgs.request &lt;Object&gt;</code>
The request object.
</dd>
<dd>
<code>oArgs.response &lt;Object&gt;</code>
The parsed response object.
</dd>
<dd>
<code>oArgs.callback &lt;Object&gt;</code>
The callback object.
</dd>
<dd>
<code>oArgs.caller &lt;Object&gt;</code>
(deprecated) Use callback.scope.
</dd>
</dl>
</div>
</div>
<hr />
</div>
</div>
</div>
</div>
</div>
<div class="yui-b">
<div class="nav">
<div class="module">
<h4>Modules</h4>
<ul class="content">
<li class=""><a href="module_animation.html">animation</a></li>
<li class=""><a href="module_autocomplete.html">autocomplete</a></li>
<li class=""><a href="module_button.html">button</a></li>
<li class=""><a href="module_calendar.html">calendar</a></li>
<li class=""><a href="module_carousel.html">carousel</a></li>
<li class=""><a href="module_charts.html">charts</a></li>
<li class=""><a href="module_colorpicker.html">colorpicker</a></li>
<li class=""><a href="module_connection.html">connection</a></li>
<li class=""><a href="module_container.html">container</a></li>
<li class=""><a href="module_cookie.html">cookie</a></li>
<li class="selected"><a href="module_datasource.html">datasource</a></li>
<li class=""><a href="module_datatable.html">datatable</a></li>
<li class=""><a href="module_dom.html">dom</a></li>
<li class=""><a href="module_dragdrop.html">dragdrop</a></li>
<li class=""><a href="module_editor.html">editor</a></li>
<li class=""><a href="module_element.html">element</a></li>
<li class=""><a href="module_event.html">event</a></li>
<li class=""><a href="module_get.html">get</a></li>
<li class=""><a href="module_history.html">history</a></li>
<li class=""><a href="module_imagecropper.html">imagecropper</a></li>
<li class=""><a href="module_imageloader.html">imageloader</a></li>
<li class=""><a href="module_json.html">json</a></li>
<li class=""><a href="module_layout.html">layout</a></li>
<li class=""><a href="module_logger.html">logger</a></li>
<li class=""><a href="module_menu.html">menu</a></li>
<li class=""><a href="module_paginator.html">paginator</a></li>
<li class=""><a href="module_profiler.html">profiler</a></li>
<li class=""><a href="module_profilerviewer.html">profilerviewer</a></li>
<li class=""><a href="module_resize.html">resize</a></li>
<li class=""><a href="module_selector.html">selector</a></li>
<li class=""><a href="module_slider.html">slider</a></li>
<li class=""><a href="module_tabview.html">tabview</a></li>
<li class=""><a href="module_treeview.html">treeview</a></li>
<li class=""><a href="module_uploader.html">uploader</a></li>
<li class=""><a href="module_yahoo.html">yahoo</a></li>
<li class=""><a href="module_yuiloader.html">yuiloader</a></li>
<li class=""><a href="module_yuitest.html">yuitest</a></li>
</ul>
</div>
<div class="module">
<h4>Classes</h4>
<ul class="content">
<li class=""><a href="YAHOO.util.DataSource.html">YAHOO.util.DataSource</a></li>
<li class="selected"><a href="YAHOO.util.DataSourceBase.html">YAHOO.util.DataSourceBase</a></li>
<li class=""><a href="YAHOO.util.Date.html">YAHOO.util.Date</a></li>
<li class=""><a href="YAHOO.util.DateLocale.html">YAHOO.util.DateLocale</a></li>
<li class=""><a href="YAHOO.util.FunctionDataSource.html">YAHOO.util.FunctionDataSource</a></li>
<li class=""><a href="YAHOO.util.LocalDataSource.html">YAHOO.util.LocalDataSource</a></li>
<li class=""><a href="YAHOO.util.Number.html">YAHOO.util.Number</a></li>
<li class=""><a href="YAHOO.util.ScriptNodeDataSource.html">YAHOO.util.ScriptNodeDataSource</a></li>
<li class=""><a href="YAHOO.util.XHRDataSource.html">YAHOO.util.XHRDataSource</a></li>
</ul>
</div>
<div class="module">
<h4>Files</h4>
<ul class="content">
<li class=""><a href="DataSource.js.html">DataSource.js</a></li>
<li class=""><a href="Type.js.html">Type.js</a></li>
</ul>
</div>
<div class="module">
<h4>Properties</h4>
<ul class="content">
<li class="private"><a href="#property__aCache">_aCache</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class="private"><a href="#property__aIntervals">_aIntervals</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class="private"><a href="#property__oQueue">_oQueue</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class="private"><a href="#property__sName">_sName</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_DataSource.Parser">DataSource.Parser</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class="private"><a href="#property_DataSourceBase._nIndex">DataSourceBase._nIndex</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class="private"><a href="#property_DataSourceBase._nTransactionId">DataSourceBase._nTransactionId</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_dataType">dataType</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_ERROR_DATAINVALID">ERROR_DATAINVALID</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_ERROR_DATANULL">ERROR_DATANULL</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_liveData">liveData</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_maxCacheEntries">maxCacheEntries</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_responseSchema">responseSchema</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_responseType">responseType</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_HTMLTABLE">TYPE_HTMLTABLE</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_JSARRAY">TYPE_JSARRAY</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_JSFUNCTION">TYPE_JSFUNCTION</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_JSON">TYPE_JSON</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_LOCAL">TYPE_LOCAL</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_SCRIPTNODE">TYPE_SCRIPTNODE</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_TEXT">TYPE_TEXT</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_UNKNOWN">TYPE_UNKNOWN</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_XHR">TYPE_XHR</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_TYPE_XML">TYPE_XML</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
</ul>
</div>
<div class="module">
<h4>Methods</h4>
<ul class="content">
<li class=""><!--<code>void</code>-->
<a href="#method_addToCache">addToCache</a>
</li>
<li class=""><!--<code>void</code>-->
<a href="#method_clearAllIntervals">clearAllIntervals</a>
</li>
<li class=""><!--<code>void</code>-->
<a href="#method_clearInterval">clearInterval</a>
</li>
<li class=""><!--<code>Date</code>-->
<a href="#method_DataSourceBase.parseDate">DataSourceBase.parseDate</a>
</li>
<li class=""><!--<code>Number</code>-->
<a href="#method_DataSourceBase.parseNumber">DataSourceBase.parseNumber</a>
</li>
<li class=""><!--<code>Number</code>-->
<a href="#method_DataSourceBase.parseString">DataSourceBase.parseString</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_doBeforeCallback">doBeforeCallback</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_doBeforeParseData">doBeforeParseData</a>
</li>
<li class=""><!--<code>void</code>-->
<a href="#method_flushCache">flushCache</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_getCachedResponse">getCachedResponse</a>
</li>
<li class=""><!--<code>void</code>-->
<a href="#method_handleResponse">handleResponse</a>
</li>
<li class=""><!--<code>Boolean</code>-->
<a href="#method_isCacheHit">isCacheHit</a>
</li>
<li class=""><!--<code>void</code>-->
<a href="#method_issueCallback">issueCallback</a>
</li>
<li class=""><!--<code>Number</code>-->
<a href="#method_makeConnection">makeConnection</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_parseArrayData">parseArrayData</a>
</li>
<li class=""><!--<code>Object} Parsed response object with the following properties:<br>
- results {Array} Array of parsed data results<br>
- meta {Object} Object literal of meta values<br>
- error {Boolean</code>-->
<a href="#method_parseData">parseData</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_parseHTMLTableData">parseHTMLTableData</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_parseJSONData">parseJSONData</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_parseTextData">parseTextData</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_parseXMLData">parseXMLData</a>
</li>
<li class=""><!--<code>Object</code>-->
<a href="#method_parseXMLResult">parseXMLResult</a>
</li>
<li class=""><!--<code>Number</code>-->
<a href="#method_sendRequest">sendRequest</a>
</li>
<li class=""><!--<code>Number</code>-->
<a href="#method_setInterval">setInterval</a>
</li>
<li class=""><!--<code>String</code>-->
<a href="#method_toString">toString</a>
</li>
</ul>
</div>
<div class="module">
<h4>Events</h4>
<ul class="content">
<li class="">
<a href="#event_cacheFlushEvent">cacheFlushEvent</a>
</li>
<li class="">
<a href="#event_cacheRequestEvent">cacheRequestEvent</a>
</li>
<li class="">
<a href="#event_cacheResponseEvent">cacheResponseEvent</a>
</li>
<li class="">
<a href="#event_dataErrorEvent">dataErrorEvent</a>
</li>
<li class="">
<a href="#event_requestEvent">requestEvent</a>
</li>
<li class="">
<a href="#event_responseCacheEvent">responseCacheEvent</a>
</li>
<li class="">
<a href="#event_responseEvent">responseEvent</a>
</li>
<li class="">
<a href="#event_responseParseEvent">responseParseEvent</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div id="ft">
<hr />
Copyright &copy; 2008 Yahoo! Inc. All rights reserved.
</div>
</div>
</body>
</html>