Web-based incremental computing
First Claim
Patent Images
1. A method to update a document object model (DOM) stored in a computer readable storage device, wherein producing the DOM includes running a function that includes multiple expressions on a computer system in response to a set of input values, the method comprising:
- producing a dependency graph structure in a computer readable storage device that includes nodes that correspond to reactive values produced in the course of evaluation of the expressions within the function in response to the set of input values and that includes a node that corresponds to a contained in relationship between a reactive value and a corresponding element of the DOM in response to evaluation of one or more expressions within the function in response to the set of input values indicating inclusion of such node having the contained in relationship and that includes paths among the nodes that represent dependency relationships among the reactive values, wherein respective paths include a root node and include respective input nodes that are associated with respective input values and include respective nodes, disposed between the root node and respective input nodes, that are associated in the storage device with at least one of expressions within the function used to produce respective reactive values that correspond to those respective nodes or to the contained in relationship;
detecting a change of at least one input value from the set of input values;
in response to the detected change of the at least one input value, selecting in ascending order of node depth within the dependency graph structure, a respective node from among the root node and respective nodes on respective paths that have a respective input node associated with a respective changed input value; and
re-running on a computer system a respective expression, that is associated with the respective selected node, using the changed input value to determine a respective changed reactive value;
in response to the re-running the respective expression associated with the respective selected node, prior to re-running an expression associated with a respective next selected node in the ascending order of node depth, changing the dependency graph structure to represent any changes to one or more dependency relationships among reactive values produced as a result of the respective re-running;
continuing the acts of re-running and changing in the ascending order of node depth within the changed dependency graph structure; and
in the course of the acts of re-running, in response to the dependency graph structure including a node that corresponds to a contained in relationship between a changed reactive value and a corresponding element of the DOM, propagating the changed reactive value to that corresponding element of the DOM.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and a system implementing web-based incremental computing. A webpage updates when a data value relevant to displayed information is altered and updates only those affected elements. A watch system monitors relevant data values and in conjunction with a dependency tree, may execute functions to alter only altered elements of a webpage. A framework to automatically track data dependencies and propagate data changes is disclosed.
-
Citations
21 Claims
-
1. A method to update a document object model (DOM) stored in a computer readable storage device, wherein producing the DOM includes running a function that includes multiple expressions on a computer system in response to a set of input values, the method comprising:
-
producing a dependency graph structure in a computer readable storage device that includes nodes that correspond to reactive values produced in the course of evaluation of the expressions within the function in response to the set of input values and that includes a node that corresponds to a contained in relationship between a reactive value and a corresponding element of the DOM in response to evaluation of one or more expressions within the function in response to the set of input values indicating inclusion of such node having the contained in relationship and that includes paths among the nodes that represent dependency relationships among the reactive values, wherein respective paths include a root node and include respective input nodes that are associated with respective input values and include respective nodes, disposed between the root node and respective input nodes, that are associated in the storage device with at least one of expressions within the function used to produce respective reactive values that correspond to those respective nodes or to the contained in relationship; detecting a change of at least one input value from the set of input values; in response to the detected change of the at least one input value, selecting in ascending order of node depth within the dependency graph structure, a respective node from among the root node and respective nodes on respective paths that have a respective input node associated with a respective changed input value; and re-running on a computer system a respective expression, that is associated with the respective selected node, using the changed input value to determine a respective changed reactive value; in response to the re-running the respective expression associated with the respective selected node, prior to re-running an expression associated with a respective next selected node in the ascending order of node depth, changing the dependency graph structure to represent any changes to one or more dependency relationships among reactive values produced as a result of the respective re-running; continuing the acts of re-running and changing in the ascending order of node depth within the changed dependency graph structure; and in the course of the acts of re-running, in response to the dependency graph structure including a node that corresponds to a contained in relationship between a changed reactive value and a corresponding element of the DOM, propagating the changed reactive value to that corresponding element of the DOM. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An article of manufacture that includes a computer readable storage device that stores computer readable code to configure a computer to implement a method to update a document object model (DOM) stored in a computer readable storage device, wherein producing the DOM includes running a function that includes multiple expressions on a computer system in response to a set of input values, the method comprising:
-
producing a dependency graph structure in a computer readable storage device that includes nodes that correspond to reactive values produced in the course of evaluation of the expressions within the function in response to the set of input values and that includes a node that corresponds to a contained in relationship between a reactive value and a corresponding element of the DOM in response to evaluation of one or more expressions within the function in response to the set of input values indicating inclusion of such node having the contained in relationship and that includes paths among the nodes that represent dependency relationships among the reactive values, wherein respective paths include a root node and include respective input nodes that are associated with respective input values and include respective nodes, disposed between the root node and respective input nodes, that are associated in the storage device with at least one of expressions within the function used to produce respective reactive values that correspond to those respective nodes or to the contained in relationship; detecting a change of at least one input value from the set of input values; in response to the detected change of the at least one input value, selecting in ascending order of node depth within the dependency graph structure, a respective node from among the root node and respective nodes on respective paths that have a respective input node associated with a respective changed input value; and re-running on a computer system a respective expression, that is associated with the respective selected node, using the changed input value to determine a respective changed reactive value; in response to the re-running the respective expression associated with the respective selected node, prior to re-running an expression associated with a respective next selected node in the ascending order of node depth, changing the dependency graph structure to represent any changes to one or more dependency relationships among reactive values produced as a result of the respective re-running; continuing the acts of re-running and changing in the ascending order of node depth within the changed dependency graph structure; and in the course of the acts of re-running, in response to the dependency graph structure including a node that corresponds to a contained in relationship between a changed reactive value and a corresponding element of the DOM, propagating the changed reactive value to that corresponding element of the DOM. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A system comprising:
-
at least one processor; non-transitory machine readable storage device; and a communication bus coupling the processor and the storage device; wherein the storage device stores computer readable code to configure the at least one processor to implement a method to update a document object model (DOM) stored in a computer readable storage device, wherein producing the DOM includes running a function that includes multiple expressions on the at least one processor in response to a set of input values, the method comprising; producing a dependency graph structure in a computer readable storage device that includes nodes that correspond to reactive values produced in the course of evaluation of the expressions within the function in response to the set of input values and that includes a node that corresponds to a contained in relationship between a reactive value and a corresponding element of the DOM in response to evaluation of one or more expressions within the function in response to the set of input values indicating inclusion of such node having the contained in relationship and that includes paths among the nodes that represent dependency relationships among the reactive values, wherein respective paths include a root node and include respective input nodes that are associated with respective input values and include respective nodes, disposed between the root node and respective input nodes, that are associated in the storage device with at least one of expressions within the function used to produce respective reactive values that correspond to those respective nodes or to the contained in relationship; detecting a change of at least one input value from the set of input values; in response to the detected change of the at least one input value, selecting in ascending order of node depth within the dependency graph structure, a respective node from among the root node and respective nodes on respective paths that have a respective input node associated with a respective changed input value; and re-running on a computer system a respective expression, that is associated with the respective selected node, using the changed input value to determine a respective changed reactive value; in response to the re-running the respective expression associated with the respective selected node, prior to re-running an expression associated with a respective next selected node in the ascending order of node depth, changing the dependency graph structure to represent any changes to one or more dependency relationships among reactive values produced as a result of the respective re-running; continuing the acts of re-running and changing in the ascending order of node depth within the changed dependency graph structure; and in the course of the acts of re-running, in response to the dependency graph structure including a node that corresponds to a contained in relationship between a changed reactive value and a corresponding element of the DOM, propagating the changed reactive value to that corresponding element of the DOM.
-
Specification