#

# Example: DataSource with Polling

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

###### 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")
                         .setHTML("At the tone the time will be: " +
                                    Y.dump(e.response.results[0].toString()));
                    },
                    failure: function(e){
                        Y.one("#demo_output_polling")
                         .setHTML("Could not retrieve data: " + e.error.message);
                    }
                }
            },
            id = myDataSource.setInterval(1000, request); // Starts polling

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