src/cm/media/js/lib/yui/yui_3.10.3/docs/jsonp/jsonp-gallery.html
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
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: Reusing a JSONPRequest Instance to Poll a Remote Server</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: Reusing a JSONPRequest Instance to Poll a Remote Server</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"><style scoped>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
    #out {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
        margin-top: 2em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    #out h4 {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
        border-right: 100px solid #ccc;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
<div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
        This example shows how to create a reusable JSONPRequest for polling as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
        well as how to configure success and failure callbacks.  See the API
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
        docs and user guide for a full listing of available configurations.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
        For this example, we will use a JSONP service hosted on <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
        href="http://yuilibrary.com">YUILibrary</a> to fetch information about
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
        a random Gallery module and render some of the information on the page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
<div class="example yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
<div id="demo">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    <input type="button" id="start" value="Start polling">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    <input type="button" id="stop" value="Stop polling">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    <div id="out">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
YUI().use("jsonp", "transition",function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    var url = "http://yuilibrary.com/gallery/api/random?callback={callback}",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
        outputDiv = Y.one("#out"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
        gallery;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    // Using the configuration object syntax
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
    gallery = new Y.JSONPRequest(url, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
        on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
            success: function (response) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
                var module = response.modules[0],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
                    author = module.owner;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
                // Some users don't have a rank
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
                if (!author.rank) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
                    author.rank = "user";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
                // Format the author info and store as a property of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
                // module object for use by Y.Lang.sub
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
                // ('this' refers to the JSONPRequest object by default)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
                module.authorHTML = Y.Lang.sub(this.authorTemplate, author);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
                outputDiv.setHTML(Y.Lang.sub(this.moduleTemplate, module));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
                // Add some flare to the poll interval by showing a "time left"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
                // indicator via the header's border
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
                Y.one("#out h4")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
                    .setStyle("borderRightWidth", "100px")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
                    .transition({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
                        borderRightWidth: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
                        duration: 7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
                    }, function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
                        if (gallery.polling) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
                            gallery.send();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
                    });
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
            failure: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
                gallery.polling = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
                outputDiv.setHTML(this.failureTemplate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
                // Wire up the Try again button
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
                outputDiv.one("button").on("click", function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
                    gallery.send();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
        }
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
    gallery.moduleTemplate =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
        '<h4><a href="{url}">{title}</a></h4>' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
        '<p class="author">{authorHTML}</p>' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
        '<div>{summary}</div>';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    gallery.authorTemplate =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        '<img src="{icon}" height="30" width="30">' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
        ' {fullname} <span class="rank">({rank})</span>';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    gallery.failureTemplate =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
        '<p class="error">Ack, I couldn\'t reach the Gallery web service!</p>' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
        '<button>Try again</button>';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
    gallery.polling = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
    // Click the button to send the JSONP request
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    Y.one("#start").on("click", function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        if (!gallery.polling) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            gallery.polling = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
            gallery.send();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
        }
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
    Y.one("#stop").on("click", function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
        gallery.polling = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
<h3>The data</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
<p>The structure of the JavaScript object returned from YUILibrary's JSONP service will look like this:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    modules: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
            url: (the url to the module),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
            title: (the title of the module),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
            summary: (short description of the module),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
            ...,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
            owner: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
                icon: (url to the author&#x27;s thumb image),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
                fullname: (the author&#x27;s full name),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
                rank: (YUI Team member?, Contributor? etc),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
                ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
<p>We'll use these objects to populate an HTML template with data <em>{placeholder}</em>s using <code>Y.Lang.sub( template, object )</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
<h3>Start simple</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
<p>To make a single call to the YUILibrary Gallery API, we can just use</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
<pre class="code prettyprint">Y.jsonp(&quot;http:&#x2F;&#x2F;yuilibrary.com&#x2F;gallery&#x2F;api&#x2F;random?callback={callback}&quot;, handleJSONP);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
<p>But since each call to <code>Y.jsonp()</code> creates a new instance of <code>Y.JSONPRequest</code>, we may as well store the instance and reuse it.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
<pre class="code prettyprint">var gallery = new Y.JSONPRequest(&quot;http:&#x2F;&#x2F;yuilibrary.com&#x2F;gallery&#x2F;api&#x2F;random?callback={callback}&quot;, handleJSONP);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
gallery.send();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
<h3>Add polling</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
<p>JSONPRequest doesn't have any built-in polling mechanism, but <code>Y.later()</code> can handle this for us.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
<pre class="code prettyprint">var url = &quot;http:&#x2F;&#x2F;yuilibrary.com&#x2F;gallery&#x2F;api&#x2F;random?callback={callback}&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
function handleJSONP(response) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    &#x2F;&#x2F; populate template from the response object and add to the output div
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
    Y.one(&quot;#out&quot;).setHTML( Y.Lang.sub(template, module) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    &#x2F;&#x2F; After 7 seconds, call the API for a new module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
    Y.later(7000, this, this.send);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
var gallery = new Y.JSONPRequest(url, handleJSONP);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
gallery.send();</pre>
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
<h3>Add failure protection</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
<p>In case the Gallery API is busy or some other problem arises, we'll also want to handle this case and display an error.  We can do this by passing a configuration object as the second parameter rather than a simple success callback.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
<pre class="code prettyprint">var gallery = new Y.JSONPRequest(url, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
        on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
            success: function (response) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
                &#x2F;&#x2F; populate output div from the template and response object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
                ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
                Y.one(&quot;#out&quot;).setHTML( Y.Lang.sub(template, module) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
                &#x2F;&#x2F; After 7 seconds, call the API for a new module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
                Y.later(7000, this, this.send);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
            failure: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
                Y.one(&quot;#out&quot;).setHTML( failureTemplate );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
            }
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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
gallery.send();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
<h3>Add flare</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
<p>Now we'll add a bit of flourish, by adding a visual indicator of how long until the next module is requested.  We'll replace the call to <code>Y.later()</code> with a call to <code>node.transition()</code> using a shrinking border to show the remaining time.  Then when the transition is complete, we call <code>send()</code> again.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
<pre class="code prettyprint">var gallery = new Y.JSONPRequest(url, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
        on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
            success: function (response) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
                &#x2F;&#x2F; populate output div from the template and response object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
                ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
                Y.one(&quot;#out&quot;).setHTML( Y.Lang.sub(template, module) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
                &#x2F;&#x2F; Add some flare to the poll interval by showing a &quot;time left&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
                &#x2F;&#x2F; indicator via the header&#x27;s border
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
                Y.one(&quot;#out h4&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
                    .setStyle(&quot;borderRightWidth&quot;, &quot;100px&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
                    .transition({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
                        borderRightWidth: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
                        duration: 7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
                    }, function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
                        gallery.send();
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
            failure: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
                Y.one(&quot;#out&quot;).setHTML( failureTemplate );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
gallery.send();</pre>
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
<h3>Stop the poll</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
<p>The final step is to add the ability to start and stop the polling.  We'll manage this by adding a property to the <code>gallery</code> JSONPRequest instance named <code>gallery.polling</code>.  See the full code listing below for the implementation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
<h3 id="fullcode">Full Code Listing</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
<h4>HTML</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
<pre class="code prettyprint">&lt;div id=&quot;demo&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    &lt;input type=&quot;button&quot; id=&quot;start&quot; value=&quot;Start polling&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
    &lt;input type=&quot;button&quot; id=&quot;stop&quot; value=&quot;Stop polling&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    &lt;div id=&quot;out&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
&lt;&#x2F;div&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
<h4>JavaScript</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
<pre class="code prettyprint">&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
YUI().use(&quot;jsonp&quot;, &quot;transition&quot;,function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
    var url = &quot;http:&#x2F;&#x2F;yuilibrary.com&#x2F;gallery&#x2F;api&#x2F;random?callback={callback}&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
        outputDiv = Y.one(&quot;#out&quot;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
        gallery;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
    &#x2F;&#x2F; Using the configuration object syntax
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    gallery = new Y.JSONPRequest(url, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
        on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
            success: function (response) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
                var module = response.modules[0],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
                    author = module.owner;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
                &#x2F;&#x2F; Some users don&#x27;t have a rank
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
                if (!author.rank) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
                    author.rank = &quot;user&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
                &#x2F;&#x2F; Format the author info and store as a property of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
                &#x2F;&#x2F; module object for use by Y.Lang.sub
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
                &#x2F;&#x2F; (&#x27;this&#x27; refers to the JSONPRequest object by default)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
                module.authorHTML = Y.Lang.sub(this.authorTemplate, author);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
                outputDiv.setHTML(Y.Lang.sub(this.moduleTemplate, module));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
                &#x2F;&#x2F; Add some flare to the poll interval by showing a &quot;time left&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
                &#x2F;&#x2F; indicator via the header&#x27;s border
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
                Y.one(&quot;#out h4&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
                    .setStyle(&quot;borderRightWidth&quot;, &quot;100px&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
                    .transition({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
                        borderRightWidth: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
                        duration: 7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
                    }, function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
                        if (gallery.polling) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
                            gallery.send();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
                    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
            failure: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
                gallery.polling = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
                outputDiv.setHTML(this.failureTemplate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
                &#x2F;&#x2F; Wire up the Try again button
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
                outputDiv.one(&quot;button&quot;).on(&quot;click&quot;, function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
                    gallery.send();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
    gallery.moduleTemplate =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
        &#x27;&lt;h4&gt;&lt;a href=&quot;{url}&quot;&gt;{title}&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
        &#x27;&lt;p class=&quot;author&quot;&gt;{authorHTML}&lt;&#x2F;p&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
        &#x27;&lt;div&gt;{summary}&lt;&#x2F;div&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    gallery.authorTemplate =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
        &#x27;&lt;img src=&quot;{icon}&quot; height=&quot;30&quot; width=&quot;30&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        &#x27; {fullname} &lt;span class=&quot;rank&quot;&gt;({rank})&lt;&#x2F;span&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
    gallery.failureTemplate =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
        &#x27;&lt;p class=&quot;error&quot;&gt;Ack, I couldn\&#x27;t reach the Gallery web service!&lt;&#x2F;p&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
        &#x27;&lt;button&gt;Try again&lt;&#x2F;button&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
    gallery.polling = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    &#x2F;&#x2F; Click the button to send the JSONP request
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    Y.one(&quot;#start&quot;).on(&quot;click&quot;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
        if (!gallery.polling) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
            gallery.polling = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
            gallery.send();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
    Y.one(&quot;#stop&quot;).on(&quot;click&quot;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
        gallery.polling = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
                                        <li data-description="Get basic GitHub user info using a Y.jsonp(url, callback).">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
                                            <a href="jsonp-github.html">Getting Cross Domain JSON Data Using Y.jsonp()</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
                                        <li data-description="Create a reusable JSONPRequest object to poll the YUILibrary.com Gallery web service, fetching info on a random Gallery module.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
                                            <a href="jsonp-gallery.html">Reusing a JSONPRequest Instance to Poll a Remote Server</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
                                        <li data-description="Wrapping async transactions with promises">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
                                            <a href="../promise/basic-example.html">Wrapping async transactions with promises</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
                                        <li data-description="Extend Y.Promise to create classes that encapsulate standard transaction logic in descriptive method names">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
                                            <a href="../promise/subclass-example.html">Subclassing Y.Promise</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
    assets: '../assets/jsonp',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
    name: 'jsonp-gallery',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
    title: 'Reusing a JSONPRequest Instance to Poll a Remote Server',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
YUI.Env.Tests.examples.push('jsonp-github');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
YUI.Env.Tests.examples.push('jsonp-gallery');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
YUI.Env.Tests.examples.push('basic-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
YUI.Env.Tests.examples.push('subclass-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
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
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
</html>