A system for providing state information to a server, the system comprising: one or more processors; and a machine-readable medium comprising instructions stored therein, which when executed by the processors, cause the processors to perform operations comprising: accessing a document object model, DOM, for a web application, the DOM corresponding to a tree structure which represents a first state of the web application; providing, to a server, an indication of the first state of the web application based on the DOM for storing at the server the first state for later retrieval of the first state from the server; calculating a delta between the first state of the web application and a second state of the web application, wherein the second state of the web application is different from the first state of the web application; determining that the second state of the web application is to be provided to the server when the calculated delta meets or exceeds a threshold delta between the first state of the web application and the second state of the web application and when a threshold period of time has elapsed from providing the indication of the first state of the web application to the server; providing, to the server and in response to the determination, an indication of the second state of the web application, corresponding to an updated version of the DOM, for storing at the server the second state for later retrieval of the second state from the server, wherein the indication of the second state comprises the determined delta between the first and second states. one or more processors; and a machine-readable medium comprising instructions stored therein, which when executed by the processors, cause the processors to perform operations comprising: accessing a document object model, DOM, for a web application, the DOM corresponding to a tree structure which represents a first state of the web application; providing, to a server, an indication of the first state of the web application based on the DOM for storing at the server the first state for later retrieval of the first state from the server; calculating a delta between the first state of the web application and a second state of the web application, wherein the second state of the web application is different from the first state of the web application; determining that the second state of the web application is to be provided to the server when the calculated delta meets or exceeds a threshold delta between the first state of the web application and the second state of the web application and when a threshold period of time has elapsed from providing the indication of the first state of the web application to the server; providing, to the server and in response to the determination, an indication of the second state of the web application, corresponding to an updated version of the DOM, for storing at the server the second state for later retrieval of the second state from the server, wherein the indication of the second state comprises the determined delta between the first and second states. accessing a document object model, DOM, for a web application, the DOM corresponding to a tree structure which represents a first state of the web application; providing, to a server, an indication of the first state of the web application based on the DOM for storing at the server the first state for later retrieval of the first state from the server; calculating a delta between the first state of the web application and a second state of the web application, wherein the second state of the web application is different from the first state of the web application; determining that the second state of the web application is to be provided to the server when the calculated delta meets or exceeds a threshold delta between the first state of the web application and the second state of the web application and when a threshold period of time has elapsed from providing the indication of the first state of the web application to the server; providing, to the server and in response to the determination, an indication of the second state of the web application, corresponding to an updated version of the DOM, for storing at the server the second state for later retrieval of the second state from the server, wherein the indication of the second state comprises the determined delta between the first and second states.