Liferay, Inc.![]()
A module wrapper to the default IO based on Base that adds many new features, such as:
- Ability to subscribe to on/after events (and allowing for the prevention of default handlers for "start", "success", "failure", "complete", and "end")
- Preventing the caching of the URI
- Automatically parsing response based on dataType (HTML, JSON, XML)
- Pre-configuring a connection and starting it at a later time (with optional, custom overrides)
- Specifying a default transaction method (GET or POST) for all connections
- Specifying a custom URI formatter to globally format the URI before a connection is started (this is useful if custom parameters must be added to the URL such as the session ID)
To view all available events and configuration attributes, view the documentation.
You can create requests in many different configurations, like so:
<script src="http://yui.yahooapis.com/3.1.1/build/yui/yui-min.js"></script>YUI({
//Last Gallery Build of this module
gallery: 'gallery-2011.02.09-21-32',
modules: {
'gallery-aui-skin-base': {
fullpath: 'http://yui.yahooapis.com/gallery-2011.02.09-21-32/build/gallery-aui-skin-base/css/gallery-aui-skin-base-min.css',
type: 'css'
},
'gallery-aui-skin-classic': {
fullpath: 'http://yui.yahooapis.com/gallery-2011.02.09-21-32/build/gallery-aui-skin-classic/css/gallery-aui-skin-classic-min.css',
type: 'css',
requires: ['gallery-aui-skin-base']
}
}
}).use('gallery-aui-io-request', function(Y) {
// Firing off a basic request
Y.io.request('assets/content.html');
// Sending over data in the request
Y.io.request('assets/content.html', {
data: {
item1: 'value1',
item2: 'value2'
}
});
// Creating a reusable connection that does not fire instantly
var io1 = Y.io.request('assets/content.html', {
autoLoad: false
});
// Setting properties on an existing connection
io1.set('method', 'post');
// Starting and stopping an existing connection
io1.start();
io1.stop();
// Automatically parsing and handling dataTypes:
// --- XML
var io2 = Y.io.request('rss.xml', {
dataType: 'xml',
on: {
success: function(event, id, xhr) {
Y.one(this.get('responseData')).all('item'); // returns a NodeList of all <item> elements
}
}
});
// --- JSON
var io3 = Y.io.request('json.js', {
dataType: 'json',
on: {
success: function(event, id, xhr) {
this.get('responseData'); // returns a javascript object
}
}
});
// --- Text
var io4 = Y.io.request('content.text', {
dataType: 'text',
on: {
success: function(event, id, xhr) {
this.get('responseData'); // returns plain text
}
}
});
// --- HTML
var io5 = Y.io.request('content.text', {
dataType: 'text',
on: {
success: function(event, id, xhr) {
this.get('responseData'); // returns HTML as a plain text string
}
}
});
// More options
var io6 = Y.io.request(
'assets/content.html',
{
autoLoad: false,
dataType: 'text',
cache: false,
sync: true,
method: 'post',
form: {
id: 'form'
},
headers: {
newRequestHeader: 123
}
}
);
// Globally setting options
// Set all connections to default to POST
YUI.AUI.namespace('defaults.io').method = 'POST';
// Format all urls before they're sent to the server
YUI.AUI.namespace('defaults.io').uriFormatter = function(uri) {
return uri + '/;jsessionid=' + Y.guid();
};
});| Subject | Author | Date |
|---|---|---|
| Why? | John Lindal | 06/9/10 |
| Re: Why? | Murray Macchio | 06/10/10 |
| Re: Why? | Murray Macchio | 06/10/10 |
| Styling | Eike Hirsch | 06/11/10 |
| Re: Why? | Eduardo Lundgren | 06/11/10 |
| Re: Styling | Eduardo Lundgren | 06/11/10 |
| Re: Why? | Murray Macchio | 06/11/10 |
| Re: Why? | Eduardo Lundgren | 06/11/10 |
| Re: Styling | Eike Hirsch | 06/14/10 |
| Parallel thinking | Peter Peterson | 06/15/10 |
© 2006-2013 Yahoo! Inc. All rights reserved.
All code on this site is licensed under the BSD License unless stated otherwise.
About This Site · Security Contact Info