[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 /* 2 YUI 3.17.2 (build 9c3c78e) 3 Copyright 2014 Yahoo! Inc. All rights reserved. 4 Licensed under the BSD License. 5 http://yuilibrary.com/license/ 6 */ 7 8 YUI.add('datasource-polling', function (Y, NAME) { 9 10 /** 11 * Extends DataSource with polling functionality. 12 * 13 * @module datasource 14 * @submodule datasource-polling 15 */ 16 17 /** 18 * Adds polling to the DataSource Utility. 19 * @class Pollable 20 * @extends DataSource.Local 21 */ 22 function Pollable() { 23 this._intervals = {}; 24 } 25 26 Pollable.prototype = { 27 28 /** 29 * @property _intervals 30 * @description Hash of polling interval IDs that have been enabled, 31 * stored here to be able to clear all intervals. 32 * @private 33 */ 34 _intervals: null, 35 36 /** 37 * Sets up a polling mechanism to send requests at set intervals and 38 * forward responses to given callback. 39 * 40 * @method setInterval 41 * @param msec {Number} Length of interval in milliseconds. 42 * @param [request] {Object} An object literal with the following properties: 43 * <dl> 44 * <dt><code>request</code></dt> 45 * <dd>The request to send to the live data source, if any.</dd> 46 * <dt><code>callback</code></dt> 47 * <dd>An object literal with the following properties: 48 * <dl> 49 * <dt><code>success</code></dt> 50 * <dd>The function to call when the data is ready.</dd> 51 * <dt><code>failure</code></dt> 52 * <dd>The function to call upon a response failure condition.</dd> 53 * <dt><code>argument</code></dt> 54 * <dd>Arbitrary data payload that will be passed back to the success and failure handlers.</dd> 55 * </dl> 56 * </dd> 57 * <dt><code>cfg</code></dt> 58 * <dd>Configuration object, if any.</dd> 59 * </dl> 60 * @return {Number} Interval ID. 61 */ 62 setInterval: function(msec, request) { 63 var x = Y.later(msec, this, this.sendRequest, [ request ], true); 64 this._intervals[x.id] = x; 65 // First call happens immediately, but async 66 Y.later(0, this, this.sendRequest, [request]); 67 return x.id; 68 }, 69 70 /** 71 * Disables polling mechanism associated with the given interval ID. 72 * 73 * @method clearInterval 74 * @param id {Number} Interval ID. 75 */ 76 clearInterval: function(id, key) { 77 // In case of being called by clearAllIntervals() 78 id = key || id; 79 if(this._intervals[id]) { 80 // Clear the interval 81 this._intervals[id].cancel(); 82 // Clear from tracker 83 delete this._intervals[id]; 84 } 85 }, 86 87 /** 88 * Clears all intervals. 89 * 90 * @method clearAllIntervals 91 */ 92 clearAllIntervals: function() { 93 Y.each(this._intervals, this.clearInterval, this); 94 } 95 }; 96 97 Y.augment(Y.DataSource.Local, Pollable); 98 99 100 }, '3.17.2', {"requires": ["datasource-local"]});
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |