docs: function(resolution) {
          if(this.backBufferTimerId !== null) {
              this.removeBackBuffer();
          }
          var backBuffer = this.backBuffer;
          if(!backBuffer) {
              backBuffer = this.createBackBuffer();
              if(!backBuffer) {
                  return;
              }
              if (resolution === this.gridResolution) {
                  this.div.insertBefore(backBuffer, this.div.firstChild);
              } else {
                  this.map.baseLayer.div.parentNode.insertBefore(backBuffer, this.map.baseLayer.div);
              }
              this.backBuffer = backBuffer;
  
              // set some information in the instance for subsequent
              // calls to applyBackBuffer where the same back buffer
              // is reused
              var topLeftTileBounds = this.grid[0][0].bounds;
              this.backBufferLonLat = {
                  lon: topLeftTileBounds.left,
                  lat: topLeftTileBounds.top
              };
              this.backBufferResolution = this.gridResolution;
          }
          
          var ratio = this.backBufferResolution / resolution;
  
          // scale the tiles inside the back buffer
          var tiles = backBuffer.childNodes, tile;
          for (var i=tiles.length-1; i>=0; --i) {
              tile = tiles[i];
              tile.style.top = ((ratio * tile._i * tile._h) | 0) + 'px';
              tile.style.left = ((ratio * tile._j * tile._w) | 0) + 'px';
              tile.style.width = Math.round(ratio * tile._w) + 'px';
              tile.style.height = Math.round(ratio * tile._h) + 'px';
          }
  
          // and position it (based on the grid's top-left corner)
          var position = this.getViewPortPxFromLonLat(
                  this.backBufferLonLat, resolution);
          var leftOffset = this.map.layerContainerOriginPx.x;
          var topOffset = this.map.layerContainerOriginPx.y;
          backBuffer.style.left = Math.round(position.x - leftOffset) + 'px';
          backBuffer.style.top = Math.round(position.y - topOffset) + 'px';
      }