A method to be executed at least in part in a computing device for dynamically updating a virtual list view, the method comprising: detecting a speed of scrolling by a user in a virtual list view presentation of an application user interface presenting downloaded data; if the scrolling speed is below a predefined threshold, continuing to download the data and updating the presentation in a view port continuously; if the scrolling speed is above the threshold, skipping downloading operation for blocks of data rows that are scrolled through by the user until the scrolling speed drops below the threshold again; when the scrolling speed drops below the threshold again, downloading a preset number of blocks that include a block to be presented in the view port and a number of blocks preceding and following the block to be presented; and displaying the block to be presented in the view port; further comprising: assigning each block in the virtual list view a position attribute relative to a predefined reference, wherein the position attribute is associated with a row identifier such that any range of rows can be selected for presentation in the view port, if a number of rows in a selection do not exist at a client executing the application, initiating a synchronous call to a data source maintaining the data for requesting the missing rows utilizing the row identifiers; and if a portion of the data at the data source has changed, updating the client by providing an identifier of an affected data row, a change for the data row, and a position indicator for the row, wherein the update is performed in one of per row basis and batch of rows basis. detecting a speed of scrolling by a user in a virtual list view presentation of an application user interface presenting downloaded data; if the scrolling speed is below a predefined threshold, continuing to download the data and updating the presentation in a view port continuously; if the scrolling speed is above the threshold, skipping downloading operation for blocks of data rows that are scrolled through by the user until the scrolling speed drops below the threshold again; when the scrolling speed drops below the threshold again, downloading a preset number of blocks that include a block to be presented in the view port and a number of blocks preceding and following the block to be presented; and displaying the block to be presented in the view port; further comprising: assigning each block in the virtual list view a position attribute relative to a predefined reference, wherein the position attribute is associated with a row identifier such that any range of rows can be selected for presentation in the view port, if a number of rows in a selection do not exist at a client executing the application, initiating a synchronous call to a data source maintaining the data for requesting the missing rows utilizing the row identifiers; and if a portion of the data at the data source has changed, updating the client by providing an identifier of an affected data row, a change for the data row, and a position indicator for the row, wherein the update is performed in one of per row basis and batch of rows basis. assigning each block in the virtual list view a position attribute relative to a predefined reference, wherein the position attribute is associated with a row identifier such that any range of rows can be selected for presentation in the view port, if a number of rows in a selection do not exist at a client executing the application, initiating a synchronous call to a data source maintaining the data for requesting the missing rows utilizing the row identifiers; and if a portion of the data at the data source has changed, updating the client by providing an identifier of an affected data row, a change for the data row, and a position indicator for the row, wherein the update is performed in one of per row basis and batch of rows basis.