src/cm/media/js/lib/yui/yui_3.10.3/docs/io/index.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>IO Utility</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>IO Utility</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
<h2 id="getting-started">Getting Started</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
To include the source files for IO Utility and its dependencies, first load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
the YUI seed file if you haven't already loaded it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
Next, create a new YUI instance for your application and populate it with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
YUI will automatically load any dependencies required by the modules you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
specify.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
<pre class="code prettyprint">&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
YUI().use(&#x27;io&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    &#x2F;&#x2F; IO Utility is available and ready for use. Add implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    &#x2F;&#x2F; code here.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
For more information on creating YUI instances and on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
documentation for the <a href="../yui/index.html">YUI Global Object</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
<h2 id="a-simple-transaction">A Simple Transaction</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
The <code>io()</code> method on the YUI instance is the static method for making an HTTP request.  This method accepts two arguments: the uri and the configuration object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
    <li><strong>uri:</strong> This parameter specifies the URI for the transaction</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    <li><strong>configuration:</strong> This parameter is an object of keys and values of configurations specific to the transaction.  Please see: <a href="#the-configuration-object">The Configuration Object</a> for more information on all available configuration properties.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
<code>io()</code> returns an object with the following members:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
    <li><strong>id:</strong> This is the unique identifier of the transaction.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
    <li><strong>abort():</strong> Aborts the specific transaction.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
    <li><strong>isInProgress():</strong> Returns a boolean value indicating whether the transaction has completed.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
This is an example GET transaction, handling the response at the earliest opportunity.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
<pre class="code prettyprint">&#x2F;&#x2F; Create a YUI instance using io-base module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
YUI().use(&quot;io-base&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
    var uri = &quot;get.php?foo=bar&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
    &#x2F;&#x2F; Define a function to handle the response data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    function complete(id, o, args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
        var id = id; &#x2F;&#x2F; Transaction ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        var data = o.responseText; &#x2F;&#x2F; Response data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
        var args = args[1]; &#x2F;&#x2F; &#x27;ipsum&#x27;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    &#x2F;&#x2F; Subscribe to event &quot;io:complete&quot;, and pass an array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    &#x2F;&#x2F; as an argument to the event handler &quot;complete&quot;, since
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
    &#x2F;&#x2F; &quot;complete&quot; is global.   At this point in the transaction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    &#x2F;&#x2F; lifecycle, success or failure is not yet known.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
    Y.on(&#x27;io:complete&#x27;, complete, Y, [&#x27;lorem&#x27;, &#x27;ipsum&#x27;]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    &#x2F;&#x2F; Make an HTTP request to &#x27;get.php&#x27;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    &#x2F;&#x2F; NOTE: This transaction does not use a configuration object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
    var request = Y.io(uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
<h2 id="using-io">Using IO</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
<h3 id="the-io-modules">The IO modules</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
<p>IO's core and supplementary features are split into several modules, to allow greater flexibility in selecting the desired features.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
 <table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        <tr><th>Module</th><th>Description</th></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
            <td><code>io-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
            <td>This is the base module, containing the basic functionality needed for making HTTP requests.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
            <td><code>io-xdr</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
            <td>This module extends io-base, to add cross-domain request capabilities using alternate HTTP transports.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            <td><code>io-form</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
            <td>This module extends io-base, to add the ability to serialize HTML form data for POST transactions.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
            <td><code>io-upload-iframe</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
            <td>This module extends io-base, to allow file uploads with an HTML form, using an iframe as the transaction transport.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
            <td><code>io-queue</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
            <td>This module extends io-base, to provide a basic queue interface for io.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
            <td><code>io-nodejs</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
            <td>Conditional module that provides a transport for Node.js.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
<h3 id="the-configuration-object">The Configuration Object</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
<p>This object is the second argument of <code>io()</code>.  Its properties define transaction parameters and transaction response handling.  The configuration object and all configuration properties are optional.  The following table describes all configuration properties used by IO.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
            <th>Property</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
            <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
            <td>method (string)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
            <td>Defines the HTTP method for the transaction.  If this property is undefined or omitted, the default value is GET.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
            <td>data (string)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
            <td>Data to be sent with the transaction, defined as a string of key-value pairs(e.g., <code>"foo=bar&baz=boo"</code>.)  Data can also be defined as a single-level object(e.g., { 'foo':'bar', 'baz':'boo' }), which is then serialized into a key-value string.  To use this capability, the sub-module <code>querystring-stringify-simple</code>, an optional dependency for io-base, must be declared in <code>Y.use()</code>.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
            <td>headers (object)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
            <td>Specific HTTP headers and values to be sent with the transaction (e.g., <code>{ 'Content-Type': 'application/xml; charset=utf-8' } </code>).</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
            <td>on (object)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
            <td>This object can be used to register transaction event handlers for the set of supported io events, listed below. These events fire in addition to the global io events.  All events handlers are optional.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
                <ul class="topspace">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
                    <li><strong>start:</strong> <em>event handler</em></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
                    <li><strong>complete:</strong> <em>event handler</em></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
                    <li><strong>success:</strong> <em>event handler</em></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
                    <li><strong>failure:</strong> <em>event handler</em></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
                    <li><strong>end:</strong> <em>event handler</em></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
                </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
            NOTE: These events are accessible only to the transaction's subscribers, whereas global IO events are accessible by all subscribers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
            <td>context (object)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
            <td>Defines the execution context of the event handler functions for the transaction. If undefined, a default value of <code>Y(the YUI instance)</code> is used.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
            <td>form (object)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
            <td>This object instructs io to use the labels and values of the specified HTML form as data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
                <ul class="topspace">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
                    <li><strong>id:</strong> This property can be defined as the id(String) of an HTML form or an object reference of the HTML form.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
                    <li><strong>useDisabled:</strong> When set to <strong>true</strong>, disabled field values are included as part of the data.  The default value is false.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
                </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
            <td>xdr (object)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
            <td>Defines the transport to be used for cross-domain requests (e.g., <code>{ use:'flash' }</code> ).  The transaction will use the specified transport instead of the default transport, when specified in the transaction's configuration object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
                <ul class="topspace">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
                    <li><strong>use:</strong> This property specifies the type of transport to be used; the io-xdr module provides 'native' and 'flash' transports.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
                    <li><strong>dataType:</strong> When set to <strong>'xml'</strong>, io will return the response data as an XML document, if necessary.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
                </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
            <td>sync (boolean)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
            <td>When set to <code>true</code>, the transaction will be processed synchronous, and will halt all code execution until the transaction is complete.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
            <td>arguments (object)</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
            <td><p>Object, array, string, or number passed to all registered, transaction event handlers.  This value is available as the second argument in the "start" and "end" event handlers; and, it is the third argument in the "complete", "success", and "failure" event handlers.</p></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
            <td>timeout</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
            <td>This value, defined as milliseconds, is a time threshold for the transaction (e.g., <code>{ timeout: 2000 }</code> ). When this limit is reached, and the transaction's Complete event has not yet fired, the transaction will be aborted.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
<p>This is an example of a configuration object, with a set of properties defined.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
<pre class="code prettyprint">&#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
 * This is an example configuration object with all properties defined.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
 * method: This transaction will use HTTP POST.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
 * data: &quot;user=yahoo&quot; is the POST data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
 * headers: Object of HTTP request headers for this transaction.  The
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
 *          first header defines &quot;Content-Type&quot; and the second is a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
 *          custom header.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
 * on: Object of defined event handlers for &quot;start&quot;, &quot;complete&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
 *     and &quot;end&quot;.  These handlers are methods of an object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
 *     named &quot;Dispatch&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
 * context: Event handlers will execute in the proper object context,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
 *          so usage &#x27;this&#x27; will reference Dispatch.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
 * form: Object specifying the HTML form to be serialized into a key-value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
 *       string and sent as data; and, informing io to include disabled
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
 *       HTML form fields as part of the data.  If input type of &quot;file&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
 *       is present, setting the upload property to &quot;true&quot; will create an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
 *       alternate transport, to submit the HTML form with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
 *       selected files.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
 * xdr: Instructs io to use the defined transport, in this case Flash,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
 *      to make a cross-domain request for this transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
 * arguments: Object of data, passed as an argument to the event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
 *            handlers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
var cfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
    method: &#x27;POST&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    data: &#x27;user=yahoo&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
    headers: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
        &#x27;Content-Type&#x27;: &#x27;application&#x2F;json&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
    on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        start: Dispatch.start,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
        complete: Dispatch.complete,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        end: Dispatch.end
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
    context: Dispatch,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
    form: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
        id: formObject,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
        useDisabled: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
        upload: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    xdr: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
        use: &#x27;flash&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
        dataType: &#x27;xml&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
    arguments: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
        start: &#x27;foo&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
        complete: &#x27;bar&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
        end: &#x27;baz&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
};</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
<h3 id="the-response-object">The Response Object</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
When a transaction, using the XHR object as a transport, is complete, the response data are passed as an object to the event handler.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
        <tr><th>Field</th><th>Description</th></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
      <td><strong>status</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
      <td>The HTTP status code of the transaction.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
      <td><strong>statusText</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
      <td>The HTTP status message.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
      <td><strong>getResponseHeader(<em>headername</em>)</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
      <td>Returns the string value of the specified header label.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
      <td><strong>getAllResponseHeaders()</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
      <td>All response HTTP headers are available as a string.  Each key-value pair is delimited by "\n".</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
      <td><strong>responseText</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
      <td>The response data as a decoded string.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
      <td><strong>responseXML</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
      <td>The response data as an XML document.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
  </table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
NOTE: Transactions involving file upload or cross-domain requests, using alternate transports, will only populate the <code>responseText</code> or <code>responseXML</code> field.  The HTTP status and response headers are either inaccessible or unavailable to these alternate transports.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
<h3 id="events">Events</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
IO events provide access to state and data during a transaction's lifecycle.  There are two aspects to io events: global and transaction.  Global events are always fired by io for all transactions, and these events are accessible to all event subscribers.  Transaction events are created and fired if they have handlers defined in the configuration object.  Global events are identified by the <code>io:eventname</code> pattern.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
The following table describes the available io events and provides examples of how to subscribe to them globally:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        <tr><th>Event</th><th>Description</th></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
            <td><strong>io:start</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
            <p>Fires when a request is made to a resource.  The event handler's arguments signature is:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
<pre class="code prettyprint">function onStart(transactionid, arguments) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
  &#x2F;&#x2F; transactionid : The transaction&#x27;s ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
  &#x2F;&#x2F; arguments: Array [&#x27;foo&#x27;,&#x27;bar&#x27;].
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
&#x2F;&#x2F; Subscribe to &quot;io.start&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
Y.on(&#x27;io:start&#x27;, onStart, Y, { start: [&#x27;foo&#x27;,&#x27;bar&#x27;]; );</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
            <td><strong>io:complete</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
            <p>Fires after "io:start", when the transaction is complete and response data are available.  This is the earliest opportunity to access any response data.  The event handler's arguments signature is:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
<pre class="code prettyprint">function onComplete(transactionid, response, arguments) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
  &#x2F;&#x2F; transactionid : The transaction&#x27;s ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
  &#x2F;&#x2F; response: The response object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
  &#x2F;&#x2F; arguments: Object containing an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
                array { complete: [&#x27;foo&#x27;, &#x27;bar&#x27;] }.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
&#x2F;&#x2F; Subscribe to &quot;io.complete&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
Y.on(&#x27;io:complete&#x27;, onComplete, Y, { complete: [&#x27;foo&#x27;, &#x27;bar&#x27;] } );</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
            <td><strong>io:success</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
            <p>Fires after the "complete" event, when the response HTTP status resolves to 2xx.  The event handler's arguments signature is:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
<pre class="code prettyprint">function onSuccess(transactionid, response, arguments) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
  &#x2F;&#x2F; transactionid : The transaction&#x27;s ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
  &#x2F;&#x2F; response: The response object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
  &#x2F;&#x2F; arguments: Boolean value &quot;true&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
&#x2F;&#x2F; Subscribe to &quot;io.success&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
Y.on(&#x27;io:success&#x27;, onSuccess, Y, true);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
            <td><strong>io:failure</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
            <p>Fires after the "complete" event, when the response HTTP status resolves to 4xx. 5xx, undefined, or a non-standard HTTP status.  This event also includes 'abort' and 'timeout' conditions.  The event handler's arguments signature is:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
<pre class="code prettyprint">function onFailure(transactionid, response, arguments) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
  &#x2F;&#x2F; transactionid : The transaction&#x27;s ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
  &#x2F;&#x2F; response: The response object.  Only status and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
  &#x2F;&#x2F;           statusText are populated when the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
  &#x2F;&#x2F;           transaction is terminated due to abort
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
  &#x2F;&#x2F;           or timeout.  The status will read
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
  &#x2F;&#x2F;           0, and statusText will return &quot;timeout&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
  &#x2F;&#x2F;           or &quot;abort&quot; depending on the mode of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
  &#x2F;&#x2F;           termination.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
  &#x2F;&#x2F; arguments: String &quot;Transaction Failed&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
&#x2F;&#x2F; Subscribe to &quot;io.failure&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
Y.on(&#x27;io:failure&#x27;, onFailure, Y, &#x27;Transaction Failed&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
            <td><strong>io:end</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
            <p>Fires at the conclusion of a transaction, after "success" or "failure" has been determined..  The event handler's arguments signature is:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
<pre class="code prettyprint">function onEnd(transactionid, arguments) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
  &#x2F;&#x2F; transactionid : The transaction&#x27;s ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
  &#x2F;&#x2F; arguments: Number 0.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
&#x2F;&#x2F; Subscribe to &quot;io.end&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
Y.on(&#x27;io:end&#x27;, onEnd, Y, 0);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
            <td><strong>io:xdrReady</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
            Fires when the flash XDR transport is ready for use.  This event only fires once, when the transport initialization is complete.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
<p>The following example demonstrates an IO transaction with an event handler subscribed to "io:complete".</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
<pre class="code prettyprint">&#x2F;&#x2F; Create a YUI instance using io module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
YUI().use(&quot;io-base&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
     * Create a function as the event handler for the event &quot;io:complete&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
     * The function will receive the following arguments:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
     * - The ID of the transaction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
     * - Object containing the response data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
     * - Argument one defined when subscribing to the event(e.g., &quot;foo&quot;).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
     * - Argument two defined when subscribing to the event(e.g., &quot;bar&quot;).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
    function onComplete(transactionId, responseObject, arg1, arg2) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
        &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
         * The argument &#x27;responseObject&#x27; is the response object.  Its
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
         * properties are:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
         * - status
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
         * - statusText
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
         * - getResponseHeader(headerName)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
         * - getAllResponseHeaders
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
         * - responseText
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
         * - responseXML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
         * NOTE: In an XDR transaction, only the responseText or the responseXML property is defined.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
         *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
     * Subscribe to the event &quot;io:complete&quot;, using Y.on.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
     * - &#x27;io:complete&#x27; : Subscribe to this io event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
     * - onComplete : The event handler to be subscribed to &#x27;io:complete&#x27;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
     * - Y : The execution context of the event handler, in this case, the YUI sandbox.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
     *       since the doComplete is defined as a global function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
     * - &#x27;foo&#x27; : The first argument received by the event handler.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
     * - &#x27;bar&#x27; : The second argument received by the event handler.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
     *           Additional arguments can be defined, as desired.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
    Y.on(&#x27;io:complete&#x27;, onComplete, Y, &quot;foo&quot;, &quot;bar&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
    &#x2F;&#x2F; Starts the transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
    var request = Y.io(uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
<h3 id="synchronous-transactions">Synchronous Transactions</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
    <p>For same-domain requests, YUI io can be instructed to send a synchronous request, which will halt all script execution until the transaction is complete.  When the transaction is complete, the response data are directly accessible through the object returned by Y.io(), and the data are also accessible through all io events.  When making synchronous requests, abort() and isInProgress() are not available.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
<pre class="code prettyprint">&#x2F;&#x2F; Create a YUI instance using the io-base module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
YUI().use(&quot;io-base&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
    var cfg,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
        request;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
    &#x2F;&#x2F; Create a configuration object for the synchronous transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
    cfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
        sync: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
        arguments: { &#x27;foo&#x27; : &#x27;bar&#x27; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
     * var request will contain the following fields, when the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
     * transaction is complete:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
     * - id
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
     * - status
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
     * - statusText
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
     * - getResponseHeader()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
     * - getAllResponseHeaders()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
     * - responseText
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
     * - responseXML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
     * - arguments
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
    request = Y.io(uri, cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
<h3 id="cross-domain-transactions">Cross-Domain Transactions</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
<p>By default, <code>io</code> uses the XMLHttpRequest object as the transport for HTTP transactions.  It can also be configured to use an alternate transport to make cross-domain, HTTP transactions.  Currently, io can make use of Flash as an alternate transport.  To prepare io for Flash-based, cross-domain transactions, the transport <code>io.swf</code> must be deployed and accessible to YUI io. (The file "io.swf" can be found in YUI io's build directory in the YUI3 download at: http://yuilibrary.com/downloads/.)  For each transaction, the configuration object's <code>xdr</code> object must be defined as <code>{ use: 'flash' }</code> so io will use the designated transport instead of using the default XMLHttpRequest transport.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
As <code>io.swf</code> is written in ActionScript 3, Flash Player 9 or better is required (version <strong>9.0.124</strong> or better is recommended).  Additionally, a cross-domain policy file must be deployed at the resource to grant the client access to the remote domain.  A cross-domain request will not be successful without this policy file hosted at the resource.  The following example file grants permissive access to the host from all requests, but the host will only accept custom HTTP headers originating from <code>yahoo.com</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
<pre class="code prettyprint">&lt;?xml version=&quot;1.0&quot;?&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
&lt;!DOCTYPE cross-domain-policy SYSTEM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
&quot;http:&#x2F;&#x2F;www.adobe.com&#x2F;xml&#x2F;dtds&#x2F;cross-domain-policy.dtd&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
&lt;cross-domain-policy&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
    &lt;allow-access-from domain=&quot;*&quot;&#x2F;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
    &lt;allow-http-request-headers-from domain=&quot;*.yahoo.com&quot; headers=&quot;*&quot;&#x2F;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
&lt;&#x2F;cross-domain-policy&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
For more information on cross-domain policy file specifications, see the following articles at Adobe Developer Connection.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
    <li><a href="http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html">Cross-Domain Policy File Specifications</a>.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
    <li><a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=kb403030">HTTP Headers Blacklist</a>.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
The following example demonstrates a cross-domain transaction, starting with the initialization of the XDR transport and subscribing to three global io events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
<pre class="code prettyprint">&#x2F;&#x2F; Create a YUI instance using the io cross-domain submodule
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
YUI().use(&quot;io-xdr&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
    &#x2F;&#x2F; Create a configuration object with the src property defined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
    &#x2F;&#x2F; src: The path to &quot;io.swf&quot; relative to the HTML file.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
    var xdrCfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
        src:&#x27;io.swf&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
    &#x2F;&#x2F; Initialize the cross-domain transport
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
    Y.io.transport(xdrCfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
    &#x2F;&#x2F; Define the configurations to be used for each transaciton..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
    var cfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
      xdr: { use: &#x27;flash&#x27;}, &#x2F;&#x2F; Instruct io to use the flash XDR transport.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
      data: &#x27;foo=bar&amp;baz=boo&#x27;, &#x2F;&#x2F; Key-value string of data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
      timeout: 3000, &#x2F;&#x2F; Abort the transaction, if it is still pending, after 3000ms.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
      &#x2F;&#x2F; An object passed, as an argument, to the event handlers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
      arguments: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
        start: &#x27;foo&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
        complete: &#x27;bar&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
        end: &#x27;baz&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
     * GlobalEventHandler is an example object that encapsulates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
     * event handlers for &quot;io:start&quot;, &quot;io:complete&quot;, and &quot;io:end&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
     * start( ) &#x2F;&#x2F; Event handler for &quot;io:start&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
     * success( ) &#x2F;&#x2F; Event handler for &quot;io:complete&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
     * end( ) &#x2F;&#x2F; Event handler for &quot;io:end&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
    var GlobalEventHandler = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
      start: function(id, args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
        var args = args.start &#x2F;&#x2F; &#x27;foo&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
      },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
      success: function(id, o, args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
        var args = args.complete; &#x2F;&#x2F; &#x27;bar&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
        var data = o.responseText;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
        var xml = o.responseXML;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
      },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
      end: function(id, args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
        var args = args.end &#x2F;&#x2F; args = &#x27;baz&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
    function callIo() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
        &#x2F;&#x2F;example URI.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
        var uri = &quot;http:&#x2F;&#x2F;pipes.yahooapis.com&#x2F;&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
            &#x2F;&#x2F; Start the transaction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
            request = Y.io(uri, cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
    &#x2F;&#x2F; Subscribe GlobalEventHandler.start to event &quot;io:start&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
    Y.on(&#x27;io:start&#x27;, GlobalEventHandler.start, Y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
    &#x2F;&#x2F; Subscribe GlobalEventHandler.complete to event &quot;io:complete&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
    Y.on(&#x27;io:success&#x27;, GlobalEventHandler.complete, Y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
    &#x2F;&#x2F; Subscribe GlobalEventHandler to event &quot;io:end&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
    Y.on(&#x27;io:end&#x27;, GlobalEventHandler.end, Y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
    &#x2F;&#x2F; Once the Flash transport is initialized and ready for use,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
    &#x2F;&#x2F; it will fire the &quot;io:xdrReady&quot; event.  Subscribe to it,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
    &#x2F;&#x2F; to automatically call function &quot;callIo&quot; when the transport
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
    &#x2F;&#x2F; is ready..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
    Y.on(&#x27;io:xdrReady&#x27;, callIo, Y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
Note: Cross-domain transactions do not fire the global <code>io:complete</code> event and the transaction-specific <code>complete</code> event, when using the IE XDomainRequest or the Flash transport.  All other events in the transaction lifecycle are fired.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
A subset of A-grade browsers are capable of making cross-domain requests, using XMLHttpRequest, requiring specific access control headers be served from the resource.  To use this feature, the xdr configuration must be defined with: <code>{ use: 'native' }</code>.  IO will try to resolve the request using the native transport, and it will fall back to the Flash transport if the initial attempt throws an exception due to the browser lacking native support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
<strong>NOTE:</strong> For native cross-domain requests to work, the resource <strong>must</strong> respond with the "Access-Control-Allow-Origin" header with a value permitting the client to make the request.  In the absence of this HTTP response header, the transaction will always fail.  Please see the following articles for more information on this topic.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
    <li>Mozilla Developer Center: <a href="https://developer.mozilla.org/En/HTTP_Access_Control">HTTP Access Control article</a>.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
    <li>MSDN: <a href="http://msdn.microsoft.com/en-us/library/cc709423(VS.85).aspx">Cross-Domain Security article</a>.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
    <li>W3C: <a href="http://dev.w3.org/2006/waf/access-control/">Access Control Working Draft</a>,</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
<h3 id="serializing-html-form-as-data">Serializing HTML Form as Data</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
IO can serialize HTML form fields into a string of UTF-8 encoded, name-value pairs.  If the transaction is HTTP GET, the data are appended to the URI as a querystring.  If the transaction if HTTP POST, the data will be the POST message.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
<pre class="code prettyprint">&#x2F;&#x2F; Create a YUI instance using the io-form sub-module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
YUI().use(&quot;io-form&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
    &#x2F;&#x2F; Create a configuration object for the file upload transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
    &#x2F;&#x2F; The form configuration should include two defined properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
    &#x2F;&#x2F; id: This can be the ID or an object reference to the HTML form.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
    &#x2F;&#x2F; useDisabled: Set this property to &quot;true&quot; to include disabled
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
    &#x2F;&#x2F;              HTML form fields, as part of the data.  By
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
    &#x2F;&#x2F;              default, disabled fields are excluded from the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
    &#x2F;&#x2F;              serialization.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
    &#x2F;&#x2F; The HTML form data are sent as a UTF-8 encoded key-value string.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
    var cfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
        method: &#x27;POST&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
        form: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
            id: formObject,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
            useDisabled: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
    &#x2F;&#x2F; Define a function to handle the response data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
    function complete(id, o, args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
      var id = id; &#x2F;&#x2F; Transaction ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
      var data = o.responseText; &#x2F;&#x2F; Response data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
      var args = args[1]; &#x2F;&#x2F; &#x27;ipsum&#x27;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
    &#x2F;&#x2F; Subscribe to event &quot;io:complete&quot;, and pass an array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
    &#x2F;&#x2F; as an argument to the event handler &quot;complete&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
    Y.on(&#x27;io:complete&#x27;, complete, Y, { &#x27;foo&#x27;:&#x27;bar&#x27; });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
    &#x2F;&#x2F; Start the transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
    var request = Y.io(uri, cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
<h3 id="uploading-files-in-an-html-form">Uploading Files in an HTML Form</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
The default XHR transport, used in IO, cannot upload HTML form data that include elements of type="file".  In this situation, IO will use an alternate transport -- an iframe -- to facilitate the transaction. The response data must be one of the following content types: "text/html", "text/plain", "text/xml". The following example shows how to configure a transaction involving file upload:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
<pre class="code prettyprint">&#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
 * This example demonstrates how to configure io to upload files
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
 * from an HTML form.  This example uses the global events:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
 * &quot;io:start&quot; and &quot;io:complete&quot; to handle the transaction and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
 * response.  Transaction events can be defined and fired, as well,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
 * in the configuration object; but, they are not used in this
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
 * example.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
&#x2F;&#x2F; Create a YUI instance using the io-upload-iframe sub-module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
YUI().use(&quot;io-upload-iframe&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
    &#x2F;&#x2F; Create a configuration object for the file upload transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
    &#x2F;&#x2F; The form configuration should include two defined properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
    &#x2F;&#x2F; id: This can be the ID or an object reference to the HTML form
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
    &#x2F;&#x2F;     containing the input type=&quot;file&quot; elements.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
    &#x2F;&#x2F; upload: Set this property to &quot;true&quot; to indicate this is a file
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
    &#x2F;&#x2F;         upload transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
    var cfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
        method: &#x27;POST&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
        form: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
            id: formObject,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
            upload: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
    &#x2F;&#x2F; Define a function to handle the start of a transaction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
    function start(id, args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
      var id = id; &#x2F;&#x2F; Transaction ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
      var args = args.foo; &#x2F;&#x2F; &#x27;bar&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
    &#x2F;&#x2F; Define a function to handle the response data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
    function complete(id, o, args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
      var id = id; &#x2F;&#x2F; Transaction ID.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
      var data = o.responseText; &#x2F;&#x2F; Response data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
      var args = args[1]; &#x2F;&#x2F; &#x27;ipsum&#x27;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
    &#x2F;&#x2F; Subscribe to event &quot;io:start&quot;, and pass an object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
    &#x2F;&#x2F; as an argument to the event handler &quot;start&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
    Y.on(&#x27;io:start&#x27;, start, Y, { &#x27;foo&#x27;:&#x27;bar&#x27; });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
    &#x2F;&#x2F; Subscribe to event &quot;io:complete&quot;, and pass an array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
    &#x2F;&#x2F; as an argument to the event handler &quot;complete&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
    Y.on(&#x27;io:complete&#x27;, complete, Y, [&#x27;lorem&#x27;, &#x27;ipsum&#x27;]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
    &#x2F;&#x2F; Start the transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
    var request = Y.io(uri, cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
When performing a file upload, a subset of global and transaction events will be fired.  Specifically, these are:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
    <li>Start</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
    <li>Complete</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
    <li>End</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
<p>Success and Failure events are not processed and fired because the iframe transport does not provide access to the HTTP status and response headers, to reliably determine those conditions.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
<h3 id="setting-http-headers">Setting HTTP Headers</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
IO can be configure to send default, user-defined HTTP Headers for all transactions, in addition to any headers defined in the configuration object.  Headers can be set or removed as needed.  The following example shows how to set and how to delete default headers in IO:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
<pre class="code prettyprint">YUI().use(&quot;io-base&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
    &#x2F;&#x2F; Set a new default HTTP header.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
    Y.io.header(&#x27;Content-Type&#x27;, &#x27;application&#x2F;json&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
    &#x2F;&#x2F; To remove an existing header, use the same method, but omit the value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
    Y.io.header(&#x27;Content-Type&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
<p>Custom HTTP headers may or may not be sent in cross-domain requests.  This is may be due to limitations of the transport, or specific "Access-Control" headers requirement.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
<h3 id="queue">Queue</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
IO's queue module provides FIFO transaction response while keeping each transaction asynchronous and non-blocking.  Specifically, transactions are handled -- by global or transaction event handlers  -- in the order they are sent, regardless of actual server response order.  Transactions can be promoted to the front of the queue, or they can be purged from the queue, as well.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
        <tr><th>Field</th><th>Description</th></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
      <td><strong>queue(uri, configuration)</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
      <td>Method signature is identical to io, but returns the id of the transaction.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
      <td><strong>queue.start()</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
      <td>Activates the queue, and begins processing transactions in the queue.  This is the default state of the queue.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
      <td><strong>queue.stop()</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
      <td>Deactivates the queue.  Transactions sent to queue() will be stored until the queue is re-started.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
      <td><strong>queue.promote(id)</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
      <td>Moves the specified transaction stored in the queue to the head of the queue.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
      <td><strong>queue.remove(id)</strong></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
      <td>Deletes the specified transaction stored in the queue.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
<pre class="code prettyprint">&#x2F;&#x2F; Create a YUI instance using the io queue sub-module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
YUI().use(&quot;io-queue&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
    &#x2F;&#x2F; Stop the queue so transactions can be stored.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
    Y.io.queue.stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
    &#x2F;&#x2F; Send four transactions into the queue. Each response will arrive
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
    &#x2F;&#x2F; in synchronous order.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
    var task0 = Y.io.queue(uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
    var task1 = Y.io.queue(uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
    var task2 = Y.io.queue(uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
    var task3 = Y.io.queue(uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
    &#x2F;&#x2F; Promote task2 to the top of the queue.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
    Y.io.queue.promote(task2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
    &#x2F;&#x2F; Remove task3 from the queue.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
    Y.io.queue.remove(task3);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
    &#x2F;&#x2F; Re-start the queue.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
    &#x2F;&#x2F; Transactions are sent in the following order: task2, task0, task 1.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
    &#x2F;&#x2F; Transaction callbacks, if provided, will be processed in the same
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
    &#x2F;&#x2F; sequence: task2, task0, task1, regardless of actual response order.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
    Y.io.queue.start();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
<h3 id="instantiating-io">Instantiating IO</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
As of 3.4.0, IO is instantiatiable.  An IO instance avails its public and private fields, allowing for customizations as needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
<pre class="code prettyprint">&#x2F;&#x2F; Create a new instance of IO.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
var io = new Y.IO();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
&#x2F;&#x2F; Send a request using the new Y.IO instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
&#x2F;&#x2F; This is analogous to the static method
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
&#x2F;&#x2F; Y.io()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
io.send(uri, configuration);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
In addition to being instantiable, IO is now an EventTarget, and IO's global events can be configured at instantiation time.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
<pre class="code prettyprint">&#x2F;&#x2F; This simple example creates a new instance of IO and passes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
&#x2F;&#x2F; Custom Event configurations that instructs IO to emit
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
&#x2F;&#x2F; Event Facades for all its events, and allow the events to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
&#x2F;&#x2F; bubble to other registered event targets, if any.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
var io = new Y.IO({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
    emitFacade: true, &#x2F;&#x2F; Event handlers will receive an Event Facade.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
    bubbles: true, &#x2F;&#x2F; Events will bubble to registered event targets.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
If IO is configured to emit Event Facades, each event handler will receive the Event Facade as the argument.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
<pre class="code prettyprint">&#x2F;&#x2F; This is the event handler using Event Facades.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
var configuration = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
    on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
        complete: function(o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
            &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
             * o is the event facade, and contains the following fields:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
             * - o.id is the transaction id.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
             * - o.data is the XMLHttpRequest (or other transport) object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
             * - o.arguments is the user-defined arguments, if any.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
             * - o.cfg is the configuration object used for this transaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
             *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
             * These fields are in addition to the Event Facade&#x27;s fields.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
             *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
&#x2F;&#x2F; For comparison, this is the regular event handler, when
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
&#x2F;&#x2F; not emitting Event Facades as described in the previous
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
&#x2F;&#x2F; sections on &quot;The Response Object&quot; and &quot;Events.&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
var configuration = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
    on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
        complete: function(id, xhr, arguments) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
            &#x2F;&#x2F; id is the transaction id.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
            &#x2F;&#x2F; xhr is the XMLHttpRequest object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
            &#x2F;&#x2F; arguments is the user-defined arguments, if any.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
};</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
<h3 id="using-io-in-nodejs">Using IO in Node.js</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
    YUI uses Mikeal Roger's <a href="https://github.com/mikeal/request">Request</a> library under the hood
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
    to provide our IO transport layer in Node.js.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
    The <code>io-base</code> module works out of the box and mimic's it's browser counterpart as much as it can.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
<p><strong>Note:</strong> You can not use the <code>io</code> module on the server, the <code>io</code> module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
contains the <code>io-form</code> and the <code>io-upload-frame</code> modules which both rely on a working DOM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
to be available. The <code>io-base</code> module, however, has no requirement on a DOM.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
<h4 id="simple-example">Simple Example</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
<pre class="code prettyprint">var Y = require(&#x27;yui&#x2F;io-base&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
Y.io(&#x27;https:&#x2F;&#x2F;github.com&#x2F;api&#x2F;v2&#x2F;json&#x2F;user&#x2F;show&#x2F;yui&#x27;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
    on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
        complete: function(id, e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
            var json = JSON.parse(e.responseText);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
            console.log(json);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
<p>Since the <code>request</code> module is bundled with YUI, we expose that inside YUI so you can also use it.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
<p>We alias request on the <code>IO</code> object as <code>Y.IO.request</code>, so now you can use it like this:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
<pre class="code prettyprint">fs.createReadStream(&#x27;file.json&#x27;).pipe(Y.IO.request.put(&#x27;http:&#x2F;&#x2F;mysite.com&#x2F;obj.json&#x27;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
Y.IO.request.get(&#x27;http:&#x2F;&#x2F;google.com&#x2F;img.png&#x27;).pipe(Y.IO.request.put(&#x27;http:&#x2F;&#x2F;mysite.com&#x2F;img.png&#x27;));</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
<p>In future versions of YUI, we will support file uploads via our File API that will use this under the hood as well.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
<p>See the <a href="../yui/nodejs-io.html">YUI on Node.js example for IO</a> for more information about
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
using <code>IO</code> on Node.js.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
<h2 id="security-bulletin">Security Bulletin</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   896
<p>A security vulnerability exists in the XDR transport <code>io.swf</code> when using the <code>io-xdr</code> sub-module to make cross-domain requests.  This vulnerability allows third-party sites to load <code>io.swf</code> from a remote domain and issue HTTP requests with the SWF's domain credentials.  Please examine the following use cases, and, if applicable to you, please follow the recommended actions to close this exploit.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   897
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   898
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   899
    <li> You currently host <code>io.swf</code> from YUI 3.1.0, 3.1.1, or 3.2.0pr1, and your application uses the io-xdr sub-module to make cross-domain requests.  Solution: replace the version of <code>io.swf</code> with <code>io.swf</code> from YUI 3.1.2.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   900
    <li> Your application uses the <code>io-xdr</code> sub-module from version YUI 3.1.0, 3.1.1, and you explicitly load <code>io.swf</code> from <code>http://yui.yahooapis.com/version/build/io.swf</code> (where <code>version</code> matches the affected YUI versions).  Solution: modify your application's <code>crossdomain.xml</code> so that <code>allow-access-from domain=</code> does <strong>not</strong> allow access from yui.yahooapis.com.  Download YUI 3.1.2 and deploy <code>io.swf</code> on your application's domain instead of loading it from yui.yahooapis.com.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   901
    <li> Your application uses the <code>io-xdr</code> sub-module from version YUI 3.1.0, 3.1.1, and you explicitly load <code>io.swf</code> from a disparate domain, and you have a crossdomain policy file allowing access from the SWF's domain.  Solution: modify your application's crossdomain.xml so that <code>allow-access-from domain=</code> does <strong>not</strong> allow access from the domain serving <code>io.swf</code>.  Download YUI 3.1.2 and deploy <code>io.swf</code> on your application's domain instead of loading it from a remote domain.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   902
    <li> If you use <code>io.swf</code> from YUI 3.0.0 you are not affected by this vulnerability.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   903
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   904
<p>Beginning with YUI 3.1.2, <code>io.swf</code> will no longer be accessible from yui.yahooapis.com.  You will be required to host and serve <code>io.swf</code>, if you wish to employ it as an XDR transport.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   905
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   906
<h2 id="known-issues">Known Issues</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   907
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   908
    <li>Multiple HTML Submit buttons, in an HTML form, are not supported at this time.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   909
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   910
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   911
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   912
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   913
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   914
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   915
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   916
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   917
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   918
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   919
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   920
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   921
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   922
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   923
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   924
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   925
<a href="#getting-started">Getting Started</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   926
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   927
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   928
<a href="#a-simple-transaction">A Simple Transaction</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   929
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   930
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   931
<a href="#using-io">Using IO</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   932
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   933
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   934
<a href="#the-io-modules">The IO modules</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   935
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   936
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   937
<a href="#the-configuration-object">The Configuration Object</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   938
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   939
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   940
<a href="#the-response-object">The Response Object</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   941
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   942
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   943
<a href="#events">Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   944
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   945
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   946
<a href="#synchronous-transactions">Synchronous Transactions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   947
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   948
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   949
<a href="#cross-domain-transactions">Cross-Domain Transactions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   950
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   951
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   952
<a href="#serializing-html-form-as-data">Serializing HTML Form as Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   953
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   954
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   955
<a href="#uploading-files-in-an-html-form">Uploading Files in an HTML Form</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   956
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   957
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   958
<a href="#setting-http-headers">Setting HTTP Headers</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   959
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   960
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   961
<a href="#queue">Queue</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   962
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   963
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   964
<a href="#instantiating-io">Instantiating IO</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   965
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   966
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   967
<a href="#using-io-in-nodejs">Using IO in Node.js</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   968
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   969
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   970
<a href="#simple-example">Simple Example</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   971
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   972
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   973
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   974
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   975
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   976
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   977
<a href="#security-bulletin">Security Bulletin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   978
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   979
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   980
<a href="#known-issues">Known Issues</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   981
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   982
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   983
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   984
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   985
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   986
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   987
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   988
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   989
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   990
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   991
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   992
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   993
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   994
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   995
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   996
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   997
                                        <li data-description="Use IO to request data over HTTP.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   998
                                            <a href="get.html">HTTP GET to request data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   999
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1000
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1001
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1002
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1003
                                        <li data-description="Use IO to request XML data from a remote web service.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1004
                                            <a href="weather.html">Request XML data from Yahoo! Weather</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1005
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1006
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1007
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1008
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1009
                                        <li data-description="Use IO to make a cross-domain request to Yahoo! Pipes, returning data from disparate sources.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1010
                                            <a href="xdr.html">Request JSON using Yahoo! Pipes</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1011
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1012
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1013
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1014
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1015
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1016
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1017
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1018
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1019
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1020
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1021
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1022
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1023
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1024
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1025
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1026
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1027
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1028
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1029
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1030
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1031
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1032
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1033
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1034
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1035
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1036
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1037
                                        <li data-description="Shows how to create a simple plugin to retrieve content for the Overlay using the io utility.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1038
                                            <a href="../overlay/overlay-io-plugin.html">IO Plugin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1039
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1040
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1041
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1042
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1043
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1044
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1045
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1046
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1047
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1048
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1049
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1050
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1051
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1052
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1053
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1054
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1055
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1056
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1057
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1058
    assets: '../assets/io',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1059
    name: 'io',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1060
    title: 'IO Utility',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1061
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1062
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1063
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1064
YUI.Env.Tests.examples.push('get');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1065
YUI.Env.Tests.examples.push('weather');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1066
YUI.Env.Tests.examples.push('xdr');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1067
YUI.Env.Tests.examples.push('overlay-io-plugin');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1068
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1069
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1070
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1071
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1072
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1073
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1074
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1075
</html>