code: function(map, delay, nice) {
          window.clearTimeout(this.tileQueueId[map.id]);
          var tileQueue = this.tileQueue[map.id];
          if (!nice || tileQueue.length) {
              this.tileQueueId[map.id] = window.setTimeout(
                  OpenLayers.Function.bind(function() {
                      this.drawTilesFromQueue(map);
                      if (tileQueue.length) {
                          this.updateTimeout(map, this.frameDelay);
                      }
                  }, this), delay
              );
          }
      }
docs: Method: updateTimeout
  Applies the <moveDelay> or <zoomDelay> to the <drawTilesFromQueue> loop,
  and schedules more queue processing after <frameDelay> if there are still
  tiles in the queue.
  
  Parameters:
  map - {<OpenLayers.Map>} The map to update the timeout for
  delay - {Number} The delay to apply
  nice - {Boolean} If true, the timeout function will only be created if
  the tilequeue is not empty. This is used by the move handler to
  avoid impacts on dragging performance. For other events, the tile
  queue may not be populated yet, so we need to set the timer
  regardless of the queue size.