webgui/www/extras/yui/docs/YAHOO.util.DataSource.html
2008-03-25 16:13:25 +00:00

2724 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.DataSource (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.5.1</span></h3>
<p>
<a href="./index.html">Yahoo! UI Library</a>
&gt; <a href="./module_datasource.html">datasource</a>
&gt; YAHOO.util.DataSource
</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" /> Show Private</span>
<span id="classopts"><input type="checkbox" name="showprotected" id="showprotected" /> Show Protected</span>
</form>
<h2>
Class <b>YAHOO.util.DataSource</b>
<span class="extends">
</span>
<span class="extends">
- uses
<a href="YAHOO.util.EventProvider.html">YAHOO.util.EventProvider</a>
</span>
</code>
</h2>
<!-- class tree goes here -->
<div class="summary description">
The DataSource class defines and manages a live set of data for widgets to
interact with. Examples of live databases include in-memory
local data such as a JavaScript array, a JavaScript function, or JSON, or
remote data such as data retrieved through an XHR connection.
</div>
<div class="section constructor details">
<h3 id="constructor">Constructor</h3>
<div class="content">
<div class="detail">
<strong>YAHOO.util.DataSource</strong>
<code>
(
oLiveData
,
oConfigs
)
</code>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oLiveData
&lt;Object&gt;
</code>
Pointer to live database.
</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="private">
<h4><a name="property__xhrCallback">_xhrCallback</a>
<code>- private object</code>
</h4>
<div class="detail">
<div class="description">
Define Connection Manager callback object
</div>
</div>
<hr />
</div>
<div class="">
<h4><a name="property_connMethodPost">connMethodPost</a>
<code>- Boolean</code>
</h4>
<div class="detail">
<div class="description">
If data is accessed over XHR via Connection Manager, true if data should be
sent via POST, otherwise data will be sent via GET.
</div>
</div>
<div class="default">
Default Value: false
</div>
<hr />
</div>
<div class="">
<h4><a name="property_connMgr">connMgr</a>
<code>- Object</code>
</h4>
<div class="detail">
<div class="description">
Alias to YUI Connection Manager, to allow implementers to customize the utility.
</div>
</div>
<div class="default">
Default Value: YAHOO.util.Connect
</div>
<hr />
</div>
<div class="">
<h4><a name="property_connTimeout">connTimeout</a>
<code>- Number</code>
</h4>
<div class="detail">
<div class="description">
If data is accessed over XHR via Connection Manager, the connection timeout
defines how many milliseconds the XHR connection will wait for a server
response. Any non-zero value will enable the Connection utility's
Auto-Abort feature.
</div>
</div>
<div class="default">
Default Value: 0
</div>
<hr />
</div>
<div class="">
<h4><a name="property_connXhrMode">connXhrMode</a>
<code>- String</code>
</h4>
<div class="detail">
<div class="description">
If data is accessed over XHR via Connection Manager, this setting defines
request/response management in the following manner:
<dl>
<dt>queueRequests</dt>
<dd>If a request is already in progress, wait until response is returned
before sending the next request.</dd>
<dt>cancelStaleRequests</dt>
<dd>If a request is already in progress, cancel it before sending the next
request.</dd>
<dt>ignoreStaleResponses</dt>
<dd>Send all requests, but handle only the response for the most recently
sent request.</dd>
<dt>allowAll</dt>
<dd>Send all requests and handle all responses.</dd>
</dl>
</div>
</div>
<div class="default">
Default Value: "allowAll"
</div>
<hr />
</div>
<div class="private">
<h4><a name="property_DataSource._nIndex">DataSource._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_DataSource._nTransactionId">DataSource._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.
</div>
</div>
<div class="default">
Default Value: YAHOO.util.DataSource.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.DataSource.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.
</div>
</div>
<div class="default">
Default Value: YAHOO.util.DataSource.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.
</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_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 field inheritance">
<h4>Properties inherited from <a href="YAHOO.util.EventProvider.html">YAHOO.util.EventProvider</a>:</h4>
<div class="content">
<code>
<a class="private" href="YAHOO.util.EventProvider.html#property___yui_events">__yui_events</a><span class="private">,</span>
<a class="private" href="YAHOO.util.EventProvider.html#property___yui_subscribers">__yui_subscribers</a>
</code>
</div>
</div>
<div class="section method details">
<h3 id="methods">Methods</h3>
<div class="content">
<div class="private">
<h4>
<a name="method__xhrFailure">_xhrFailure</a></h4>
<div class="detail">
<code>
private
void
<strong>_xhrFailure</strong>
(
oResponse
)
</code>
<div class="description">
Define Connection Manager failure handler
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oResponse &lt;Object&gt;</code>
HTTPXMLRequest object
</dd>
</dl>
<dl>
<dt>Returns:
<code>
void
</code></dt>
<dd></dd>
</dl>
</div>
</div>
<hr />
</div>
<div class="private">
<h4>
<a name="method__xhrSuccess">_xhrSuccess</a></h4>
<div class="detail">
<code>
private
void
<strong>_xhrSuccess</strong>
(
oResponse
)
</code>
<div class="description">
Define Connection Manager success handler
</div>
<div class="description">
<dl>
<dt>Parameters:</dt>
<dd>
<code>oResponse &lt;Object&gt;</code>
HTTPXMLRequest object
</dd>
</dl>
<dl>
<dt>Returns:
<code>
void
</code></dt>
<dd></dd>
</dl>
</div>
</div>
<hr />
</div>
<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_DataSource.parseDate">DataSource.parseDate</a></h4>
<div class="detail">
<code>
static
Date
<strong>DataSource.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_DataSource.parseNumber">DataSource.parseNumber</a></h4>
<div class="detail">
<code>
static
Number
<strong>DataSource.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_DataSource.parseString">DataSource.parseString</a></h4>
<div class="detail">
<code>
static
Number
<strong>DataSource.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
)
</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>
</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
)
</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>
</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;Function&gt;</code>
Handler function to receive the response.
</dd>
<dd>
<code>oCaller &lt;Object&gt;</code>
The Calling object that is making the request.
</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>error {Boolean}</dt> True if there was an error</dd>
<dd><dt>totalRecords {Number}</dt> Total number of records (if available)</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>
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 method provides default functionality to make a connection to
live data in order to send request. The response coming back is then
forwarded to the handleResponse function. This method should be customized
to achieve more complex implementations.
</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<br>
- totalRecords (Number) Total number of records (if available)</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.
</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<br>
- totalRecords (Number) Total number of records (if available)</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<br>
- totalRecords (Number) Total number of records (if available)</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<br>
- totalRecords (Number) Total number of records (if available)</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<br>
- totalRecords (Number) Total number of records (if available)</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 field inheritance">
<h4>Methods inherited from <a href="YAHOO.util.EventProvider.html">YAHOO.util.EventProvider</a>:</h4>
<div class="content">
<code>
<a class="" href="YAHOO.util.EventProvider.html#method_createEvent">createEvent</a><span class="">,</span> <a class="" href="YAHOO.util.EventProvider.html#method_fireEvent">fireEvent</a><span class="">,</span> <a class="" href="YAHOO.util.EventProvider.html#method_hasEvent">hasEvent</a><span class="">,</span> <a class="" href="YAHOO.util.EventProvider.html#method_subscribe">subscribe</a><span class="">,</span> <a class="" href="YAHOO.util.EventProvider.html#method_unsubscribe">unsubscribe</a><span class="">,</span> <a class="" href="YAHOO.util.EventProvider.html#method_unsubscribeAll">unsubscribeAll</a>
</code>
</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;Function&gt;</code>
The callback function.
</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
,
oArgs.tId
)
</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;Function&gt;</code>
The callback function.
</dd>
<dd>
<code>oArgs.caller &lt;Object&gt;</code>
(deprecated) Use callback.scope.
</dd>
<dd>
<code>oArgs.tId &lt;Number&gt;</code>
Transaction ID.
</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;Function&gt;</code>
The callback function.
</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.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;Function&gt;</code>
The callback function.
</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;Function&gt;</code>
The callback function.
</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.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;Function&gt;</code>
The callback function.
</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;Function&gt;</code>
The callback function.
</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_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_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="selected"><a href="YAHOO.util.DataSource.html">YAHOO.util.DataSource</a></li>
<li class=""><a href="YAHOO.util.Date.html">YAHOO.util.Date</a></li>
<li class=""><a href="YAHOO.util.Number.html">YAHOO.util.Number</a></li>
</ul>
</div>
<div class="module">
<h4>Files</h4>
<ul class="content">
<li class=""><a href="DataSource.js.html">DataSource.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="private"><a href="#property__xhrCallback">_xhrCallback</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_connMethodPost">connMethodPost</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_connMgr">connMgr</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_connTimeout">connTimeout</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class=""><a href="#property_connXhrMode">connXhrMode</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class="private"><a href="#property_DataSource._nIndex">DataSource._nIndex</a>
<!--<code>&lt;Number&gt;</code>-->
</li>
<li class="private"><a href="#property_DataSource._nTransactionId">DataSource._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_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="private"><!--<code>void</code>-->
<a href="#method__xhrFailure">_xhrFailure</a>
</li>
<li class="private"><!--<code>void</code>-->
<a href="#method__xhrSuccess">_xhrSuccess</a>
</li>
<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_DataSource.parseDate">DataSource.parseDate</a>
</li>
<li class=""><!--<code>Number</code>-->
<a href="#method_DataSource.parseNumber">DataSource.parseNumber</a>
</li>
<li class=""><!--<code>Number</code>-->
<a href="#method_DataSource.parseString">DataSource.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</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>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; 2007 Yahoo! Inc. All rights reserved.
</div>
</div>
</body>
</html>