src/cm/media/js/lib/yui/yui_3.10.3/docs/json/json-connect.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>Example: JSON with Y.io</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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
            <h1>Example: JSON with Y.io</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
                <div class="content"><div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
    A natural fit for the JSON module is to work with IO to parse JSON messages received via XMLHttpRequest (XHR). In this example, we'll request JSON data from the server using the <a href="http://yuilibrary.com/yui/docs/api/classes/IO.html#method_io"><code>Y.io()</code></a> method and parse the resulting JSON string data.
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
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
<div class="example yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    <div id="demo" class="yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    <p>Click the <em>Get Messages</em> button to send the request to the server; the response will be displayed below the button.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    <p><button>Get Messages</button></p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
    <div id="demo-messages"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
// Create business logic in a YUI sandbox using the 'io' and 'json' modules
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
YUI().use("node", "io", "dump", "json-parse", function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    // capture the node that we'll display the messages in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    var target = Y.one('#demo-messages');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    // Create the io callback/configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    var callback = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
        timeout : 3000,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
        on : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
            success : function (x,o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
                Y.log("RAW JSON DATA: " + o.responseText);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
                var messages = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
                    html = '', i, l;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
                // Process the JSON data returned from the server
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
                try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
                    messages = Y.JSON.parse(o.responseText);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
                catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
                    alert("JSON Parse failed!");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
                    return;
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
                Y.log("PARSED DATA: " + Y.Lang.dump(messages));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
                // The returned data was parsed into an array of objects.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
                // Add a P element for each received message
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
                for (i=0, l=messages.length; i < l; ++i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
                    html += '<p>' + messages[i].animal + ' says "' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
                                    messages[i].message + '"</p>';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
                // Use the Node API to apply the new innerHTML to the target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
                target.setHTML(html);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
            failure : function (x,o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
                alert("Async call failed!");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    // Attach a click event listener to the button #demo_btn to send the request
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    Y.one('#demo button').on('click',function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
        // Make the call to the server for JSON data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
        Y.io("../assets/json/json-connect-response.json", callback);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
<h2>Use <code>Y.JSON.parse</code> in the <code>success</code> handler</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    Pass the XHR <code>responseText</code> to <code>Y.JSON.parse()</code> and capture the return value. Note that the <code>parse()</code> method can throw a <code>SyntaxError</code> exception, so be sure to wrap the call in a <code>try&#x2F;catch</code> block.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
<pre class="code prettyprint lang-javascript">Y.io(&#x27;..&#x2F;assets&#x2F;json&#x2F;json-connect-response.json&#x27;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    on : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
        success : function (tx, r) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
            var parsedResponse;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
            &#x2F;&#x2F; protected against malformed JSON response
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
            try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
               parsedResponse = Y.JSON.parse(r.responseText);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
            catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
                alert(&quot;JSON Parse failed!&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
                return;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    The <code>parse()</code> method returns the native JavaScript object representation of the string data returned from the <a href="http://yuilibrary.com/yui/docs/api/classes/IO.html#method_io"><code>Y.io()</code></a> call. In this case, the data is an array of object literals in this form:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
<pre class="code prettyprint lang-json">[
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
    { &quot;animal&quot; : &quot;Cat&quot;,  &quot;message&quot; : &quot;Meow&quot;  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    { &quot;animal&quot; : &quot;Dog&quot;,  &quot;message&quot; : &quot;Woof&quot;  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    { &quot;animal&quot; : &quot;Cow&quot;,  &quot;message&quot; : &quot;Moo&quot;   },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    { &quot;animal&quot; : &quot;Duck&quot;, &quot;message&quot; : &quot;Quack&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    { &quot;animal&quot; : &quot;Lion&quot;, &quot;message&quot; : &quot;Roar&quot;  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
]</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
    In the <code>success</code> handler we'll simply loop through this array and outputting its contents to the DOM.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
<h2>Complete Example Source</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
<pre class="code prettyprint">&lt;div id=&quot;demo&quot; class=&quot;yui3-skin-sam&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    &lt;p&gt;Click the &lt;em&gt;Get Messages&lt;&#x2F;em&gt; button to send the request to the server; the response will be displayed below the button.&lt;&#x2F;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
    &lt;p&gt;&lt;button&gt;Get Messages&lt;&#x2F;button&gt;&lt;&#x2F;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    &lt;div id=&quot;demo-messages&quot;&gt;&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
&#x2F;&#x2F; Create business logic in a YUI sandbox using the &#x27;io&#x27; and &#x27;json&#x27; modules
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
YUI().use(&quot;node&quot;, &quot;io&quot;, &quot;dump&quot;, &quot;json-parse&quot;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
    &#x2F;&#x2F; capture the node that we&#x27;ll display the messages in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    var target = Y.one(&#x27;#demo-messages&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    &#x2F;&#x2F; Create the io callback&#x2F;configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
    var callback = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
        timeout : 3000,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        on : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
            success : function (x,o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
                Y.log(&quot;RAW JSON DATA: &quot; + o.responseText);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
                var messages = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
                    html = &#x27;&#x27;, i, l;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
                &#x2F;&#x2F; Process the JSON data returned from the server
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
                try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
                    messages = Y.JSON.parse(o.responseText);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
                catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
                    alert(&quot;JSON Parse failed!&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
                    return;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
                Y.log(&quot;PARSED DATA: &quot; + Y.Lang.dump(messages));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
                &#x2F;&#x2F; The returned data was parsed into an array of objects.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
                &#x2F;&#x2F; Add a P element for each received message
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
                for (i=0, l=messages.length; i &lt; l; ++i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
                    html += &#x27;&lt;p&gt;&#x27; + messages[i].animal + &#x27; says &quot;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
                                    messages[i].message + &#x27;&quot;&lt;&#x2F;p&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
                &#x2F;&#x2F; Use the Node API to apply the new innerHTML to the target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
                target.setHTML(html);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
            failure : function (x,o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
                alert(&quot;Async call failed!&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
    &#x2F;&#x2F; Attach a click event listener to the button #demo_btn to send the request
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    Y.one(&#x27;#demo button&#x27;).on(&#x27;click&#x27;,function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
        &#x2F;&#x2F; Make the call to the server for JSON data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
        Y.io(&quot;..&#x2F;assets&#x2F;json&#x2F;json-connect-response.json&quot;, callback);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
                                        <li data-description="Use JSON to parse data received via XMLHttpRequest via Y.io calls — a simple JSON use case.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
                                            <a href="json-connect.html">JSON with Y.io</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
                                        <li data-description="Use the replacer and reviver parameters to reconstitute object instances that have been serialized to JSON.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
                                            <a href="json-freeze-thaw.html">Rebuilding Class Instances from JSON Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
                                        <li data-description="Use a currency conversion calculation to add a new price member to a JSON response, demonstrating how JSON data, once retrieved, can be transformed during parsing.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
                                            <a href="json-convert-values.html">Adding New Object Members During Parsing</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
                                        <li data-description="A basic todo list built with the Model, Model List, and View components.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
                                            <a href="../app/app-todo.html">Todo List</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
                                        <li data-description="Portal style example using Drag &amp; Drop Event Bubbling and Animation.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
                                            <a href="../dd/portal-drag.html">Portal Style Example</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
    assets: '../assets/json',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
    name: 'json-connect',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
    title: 'JSON with Y.io',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
YUI.Env.Tests.examples.push('json-connect');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
YUI.Env.Tests.examples.push('json-freeze-thaw');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
YUI.Env.Tests.examples.push('json-convert-values');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
YUI.Env.Tests.examples.push('app-todo');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
YUI.Env.Tests.examples.push('portal-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
</html>