code: function ( bRedraw )
  	{
  		if ( this.s.autoHeight )
  		{
  			this._fnCalcRowHeight();
  		}
  
  		var heights = this.s.heights;
  
  		heights.viewport = $(this.dom.scroller).height();
  		this.s.viewportRows = parseInt( heights.viewport / heights.row, 10 )+1;
  		this.s.dt._iDisplayLength = this.s.viewportRows * this.s.displayBuffer;
  
  		if ( bRedraw === undefined || bRedraw )
  		{
  			this.s.dt.oInstance.fnDraw();
  		}
  	}
docs: Calculate and store information about how many rows are to be displayed
  in the scrolling viewport, based on current dimensions in the browser's
  rendering. This can be particularly useful if the table is initially
  drawn in a hidden element - for example in a tab.
  @param {bool} [bRedraw=true] Redraw the table automatically after the recalculation, with
  the new dimensions forming the basis for the draw.
  @returns {void}
  @example
  $(document).ready(function() {
  // Make the example container hidden to throw off the browser's sizing
  document.getElementById('container').style.display = "none";
  var oTable = $('#example').dataTable( {
  "sScrollY": "200px",
  "sAjaxSource": "media/dataset/large.txt",
  "sDom": "frtiS",
  "bDeferRender": true,
  "fnInitComplete": function (o) {
  // Immediately scroll to row 1000
  o.oScroller.fnScrollToRow( 1000 );
  }
  } );
  
  setTimeout( function () {
  // Make the example container visible and recalculate the scroller sizes
  document.getElementById('container').style.display = "block";
  oTable.fnSettings().oScroller.fnMeasure();
  }, 3000 );