Patent ID: 8689095

Claim:
A method to be executed at least in part in a computing device for spreadsheet presentation in a web-based spreadsheet service, the method comprising: at the web-based spreadsheet service, receiving a request for rendering a spreadsheet on a viewport associated with a browsing application, wherein the spreadsheet is divided into blocks of cells, a portion of which forms currently viewed data from the web-based spreadsheet service, wherein the viewport includes a predefined area of a user interface defined by the browsing application where the spreadsheet is displayed and wherein the portion of the blocks of cells is encompassed by the viewport and a predefined buffer margin around an edge of the viewport; determining the portion of the blocks of data forming the currently viewed data from the web-based spreadsheet service to be forwarded to the browsing application based on a number of cells encompassed by the viewport and a predefined margin around the viewport; forwarding the determined portion of the blocks of data to the browsing application to be rendered and saved locally at the browsing application; determining a need to update at least a portion of the rendered spreadsheet data based on a scrolling action on the rendered spreadsheet at the browsing application; setting a timer to determine a scrolling speed of the scrolling action on the rendered spreadsheet; estimating a number of blocks of data to show in the viewport based on the scrolling action in response to the update; asynchronously forwarding the estimated blocks of data in response to the update; performing a test to determine if the estimated blocks of data fill the viewport; if the estimated blocks do not fill the viewport, asynchronously retrieving additional blocks of data from the backend server for rendering in the viewport; and removing blocks of data outside the viewport.