The IO class is a utility that brokers HTTP requests through a simplified interface. Specifically, it allows JavaScript to make HTTP requests to a resource without a page reload. The underlying transport for making same-domain requests is the XMLHttpRequest object. IO can also use Flash, if specified as a transport, for cross-domain requests.
IOconfig
config
Object
Object of EventTarget's publish method configurations used to configure IO's events.
_aborto
c
Method for intiating an XDR transaction abort.
_aborttransaction
type
Terminates a transaction due to an explicit abort or timeout.
_addDataf
s
Parses the POST data object and creates hidden form elements for each key-value, and appends them to the HTML form object.
o Array of created fields.
_cFrameo
c
io
Creates the iframe transported used in file upload transactions, and binds the response event handler.
_clearTimeoutid
Clears the timeout interval started by _startTimeout().
id
Number
_clearUploadTimeoutid
Clears the timeout interval started by _startUploadTimeout().
id
Number
_concaturi
data
Method that concatenates string data for HTTP GET transactions.
_createcfg
id
Method that creates a unique transaction object for each request.
The transaction object
_datao
u
d
Creates a response object for XDR transactions, for success and failure cases.
_dFrameid
Removes the iframe transport used in the file upload transaction.
id
Number
The transaction ID used in the iframe's creation.
_evteventName
transaction
config
Method for creating and firing events.
_ieEvto
c
Sets event handlers for XDomainRequest transactions.
_isInProgresso
Method for determining if an XDR transaction has completed and all data are received.
o
Object
_qShiftMethod Process the first transaction from the queue in FIFO order.
_removeDataf
o
Removes the custom fields created to pass additional POST data, along with the HTML form fields.
_resetAttrsf
a
Reset the HTML form attributes to their original values.
_resulttransaction
config
Method that determines if a transaction response qualifies as success or failure, based on the response HTTP status code, and fires the appropriate success or failure events.
_retrytransaction
uri
config
Retry an XDR transaction, using the Flash tranport, if the native transport fails.
_rStransaction
config
Event handler bound to onreadystatechange.
_serializec
s
Enumerate through an HTML form's elements collection and return a string comprised of key-value pairs.
_setAttrsf
id
uri
Sets the appropriate attributes and values to the HTML form, in preparation of a file upload transaction.
_setHeaderstransaction
headers
Method that sets all HTTP headers to be sent in a transaction.
_startTimeouttransaction
timeout
Starts timeout count if the configuration object has a defined timeout property.
_startUploadTimeouto
c
Starts timeout count if the configuration object has a defined timeout property.
_stopMethod for setting queue processing to inactive. Transaction requests to YUI.io.queue() will be stored in the queue, but not processed until the queue is reset to "active".
_swfuri
yid
uid
Method that creates the Flash transport swf.
_uploado
uri
c
Uploads HTML form data, inclusive of files/attachments, using the iframe created in _create to facilitate the transaction.
_uploadCompleteo
c
Bound to the iframe's Load event and processes the response data.
_xdrReadyyid
uid
Fires event "io:xdrReady"
completetransaction
config
Fires event "io:complete" and creates, fires a transaction-specific "complete" event, if config.on.complete is defined.
emptyMethod for cancel all pending transaction from the queue.
endtransaction
config
Fires event "io:end" and creates, fires a transaction-specific "end" event, if config.on.end is defined.
errortransaction
error
config
Fires event "io:failure" and creates, fires a transaction-specific "failure" event -- for XMLHttpRequest file upload -- if config.on.failure is defined.
failuretransaction
config
Fires event "io:failure" and creates, fires a transaction-specific "failure" event, if config.on.failure is defined.
flatteno
Flatten headers object
o
Object
The headers object
The flattened headers object
loadtransaction
load
config
Fires event "io:complete" and creates, fires a transaction-specific "complete" event -- for XMLHttpRequest file upload -- if config.on.complete is defined.
progresstransaction
progress
config
Fires event "io:progress" and creates, fires a transaction-specific "progress" event -- for XMLHttpRequest file upload -- if config.on.progress is defined.
promoteMethod for promoting a transaction to the top of the queue.
queueMethod for queueing a transaction before the request is sent to the resource, to ensure sequential processing.
removeMethod for removing a specific, pending transaction from the queue.
requestPassthru to the NodeJS request module.
This method is return of require('request') so you can use it inside NodeJS without
the IO abstraction.
senduri
config
id
Requests a transaction. send() is implemented as Y.io(). Each
transaction may include a configuration object. Its properties are:
true to also serialize disabled form field values
(defaults to false)timeout.success or failure.<p>Callback functions for start and end receive the id of the
transaction as a first argument. For complete, success, and
failure, callbacks receive the id and the response object
(usually the XMLHttpRequest instance). If the arguments
property was included in the configuration object passed to
Y.io(), the configured data will be passed to all callbacks as
the last argument.</p>
</dd>
true to make a same-domain transaction synchronous.
CAVEAT: This will negatively impact the user
experience. Have a very good reason if you intend to use
this.
this'" object for all configured event handlers. If a
specific context is needed for individual callbacks, bind the
callback to a context usingY.bind()`.
Y.io({ ..., "arguments": stuff })).setHeadername
value
Stores default client headers for all transactions. If a label is passed with no value argument, the header will be deleted.
starttransaction
config
Fires event "io:start" and creates, fires a transaction-specific
start event, if config.on.start is defined.
stringifyform
[options]
Enumerate through an HTML form's elements collection and return a string comprised of key-value pairs.
successtransaction
config
Fires event "io:success" and creates, fires a transaction-specific "success" event, if config.on.success is defined.
transporto
Initializes the desired transport.
o
Object
transports.nodejsNodeJS IO transport, uses the NodeJS request module under the hood to perform all network IO.
This object contains only a send method that accepts a
transaction object, uri and the config object.
Y.io('https://somedomain.com/url', {
method: 'PUT',
data: '?foo=bar',
//Extra request module config options.
request: {
maxRedirects: 100,
strictSSL: true,
multipart: [
{
'content-type': 'application/json',
body: JSON.stringify({
foo: 'bar',
_attachments: {
'message.txt': {
follows: true,
length: 18,
'content_type': 'text/plain'
}
}
})
},
{
body: 'I am an attachment'
}
]
},
on: {
success: function(id, e) {
Y.log(e.responseText);
}
}
});
xdruri
o
c
Method for accessing the transport's interface for making a cross-domain transaction.
xdrReadyyid
uid
Fires event "io:xdrReady"
xdrResponsee
o
c
Response controller for cross-domain requests when using the Flash transport or IE8's XDomainRequest object.
_cBMap of stored configuration objects when using Flash as the transport for cross-domain requests.
_qStateProperty to determine whether the queue is set to 1 (active) or 0 (inactive). When inactive, transactions will be stored in the queue until the queue is set to active.
_rSMap of transaction simulated readyState values when XDomainRequest is the transport.
_timeoutObject that stores timeout values for any transaction with a defined "timeout" configuration property.
delayDelay value to calling the Flash transport, in the event io.swf has not finished loading. Once the E_XDR_READY event is fired, this value will be set to 0.
io:completeSignals the completion of the request-response phase of a transaction. Response status and data are accessible, if available, in this event.
io:endSignals the end of the transaction lifecycle.
io:failureSignals an HTTP response with status outside of the 2xx range. Fires after io:complete.
io:progressSignals the interactive state during a file upload transaction. This event fires after io:start and before io:complete.
io:startSignals the start of an IO request.
io:successSignals an HTTP response with status in the 2xx range. Fires after io:complete.
io:xdrReadyFires when the XDR transport is ready for use.