YUI 3.x Home -

Site Search (YDN & YUIBlog):

# YUI Library Examples: DataSource Utility: DataSource with Polling

## DataSource Utility: DataSource with Polling

DataSource's Pollable extension enables polling functionality on all your DataSource instances.

View example in new window.

###### Poll every second for current time:

Include the `datasource-pollable` extension in your `Y.use()` statement to add the `setInterval()`, `clearInterval()`, and `clearAllInterval()` methods to all your DataSource instances.

    YUI().use("datasource-function", "datasource-polling", function(Y) {    var myFunction = function() {            return new Date();        },        myDataSource = new Y.DataSource.Function({source:myFunction}),        request = {            callback: {                success: function(e){                    Y.one("#demo_output_polling")                     .setContent("At the tone the time will be: " +                                Y.dump(e.response.results[0].toString()));                },                failure: function(e){                    Y.one("#demo_output_polling")                     .setContent("Could not retrieve data: " + e.error.message);                }            }        },        id = myDataSource.setInterval(1000, request); // Starts polling         myDataSource.clearInterval(id); // Ends polling});

    YUI().use("datasource-function", "datasource-polling", function(Y) {
        var myFunction = function() {
                return new Date();
            },
            myDataSource = new Y.DataSource.Function({source:myFunction}),
            request = {
                callback: {
                    success: function(e){
                        Y.one("#demo_output_polling")
                         .setContent("At the tone the time will be: " +
                                    Y.dump(e.response.results[0].toString()));
                    },
                    failure: function(e){
                        Y.one("#demo_output_polling")
                         .setContent("Could not retrieve data: " + e.error.message);
                    }
                }
            },
            id = myDataSource.setInterval(1000, request); // Starts polling

            myDataSource.clearInterval(id); // Ends polling
    });

YUI().use("datasource-function", "datasource-polling", function(Y) { var myFunction = function() { return new Date(); }, myDataSource = new Y.DataSource.Function({source:myFunction}), request = { callback: { success: function(e){ Y.one("#demo_output_polling") .setContent("At the tone the time will be: " + Y.dump(e.response.results[0].toString())); }, failure: function(e){ Y.one("#demo_output_polling") .setContent("Could not retrieve data: " + e.error.message); } } }, id = myDataSource.setInterval(1000, request); // Starts polling myDataSource.clearInterval(id); // Ends polling });

Copyright © 2010 Yahoo! Inc. All rights reserved.

Privacy Policy - Terms of Service - Copyright Policy - Job Openings