IP Library Granted Patent US 11,170,057
Granted Patent B1
US 11,170,057 · App. 16/512,333 · Granted Nov 9, 2021

Systems and methods for caching structural elements of electronic documents

Inventors: Lindsay Grace Hall (Brooklyn, NY); Jeffrey de Blanc Palm (New York, NY); Victoria Hsiao-tsung Chou Fritz (Maplewood, NJ); Michael Owen Thomas (New York, NY)
Assignee: GOOGLE LLC
G06F16/93G06F16/2282G06F16/24552G06F16/24565G06F16/951
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,170,057
App. No.
16/512,333
Granted
Nov 9, 2021
Kind
B1
Abstract

Systems and methods are disclosed herein for caching structural elements of electronic documents. A plurality of indices is stored in a database. The plurality of indices corresponds to locations within an electronic document of portions of a structural element. A mutation to the electronic document is received. Based on the plurality of indices, it is determined that the mutation modifies the structural element. Based on the determination, the structural element is updated. The updated structural element is displayed at a user device.

Claims (80)

1. A computer-implemented method for updating a stylized sub-element in an electronic document, the method comprising:

storing, in a data store, a plurality of indices corresponding to locations within the electronic document of portions of the stylized sub-element, wherein the stored plurality of indices is stored in a cache that is separate from data defining the electronic document and wherein the stylized sub-element is associated with one or more styles for a plurality of portions of the stylized sub-element;

receiving, by a processor, a mutation to the electronic document;

determining, based on the plurality of indices stored in the separate cache, that the mutation pertains to the stylized sub-element, and that the mutation causes a style of one or more portions of the plurality of portions of the stylized sub-element to be changed to a different style;

updating, based on the mutation, the stylized sub-element; and

causing the one or more portions of the updated stylized sub-element to be displayed at a user device using the different style.

2. The method of claim 1 , wherein determining that the mutation pertains to the stylized sub-element comprises determining that a location index of the mutation is between a start index of the plurality of indices and an end index of the plurality of indices.

3. The method of claim 2 , wherein:

determining that the mutation pertains to the stylized sub-element further comprises determining that the mutation contains a marker of a structural feature of the stylized sub-element; and

the method further comprises updating the plurality of indices to include an additional index corresponding to a location of the marker within the electronic document.

4. The method of claim 1 , further comprising:

storing, in the data store, a partial index corresponding to a location within the electronic document of a partial stylized sub-element;

storing, in the data store, a text string containing the partial stylized sub-element;

receiving, at the processor, a second mutation to the electronic document;

determining, based on the partial index, that the second mutation modifies the partial stylized sub-element; and

modifying, by the processor, the text string based on the second mutation.

5. The method of claim 4 , further comprising:

determining, by the processor, that the second mutation completes the partial stylized sub-element to result in a completed stylized sub-element;

modifying, by the processor, the plurality of indices to include additional indices corresponding to locations within the electronic document of portions of the completed stylized sub-element;

updating, by the processor, the electronic document to include the completed stylized sub-element; and

displaying the updated electronic document at the user device.

6. The method of claim 1 , further comprising:

receiving, at the processor, a third mutation to the electronic document;

determining, by the processor, that the third mutation modifies the stylized sub-element in the electronic document to result in a partial stylized sub-element;

storing, in the data store, a partial index corresponding to a location within the electronic document of the partial stylized sub-element;

storing, in the data store, a text string containing the partial stylized sub-element;

updating the plurality of indices to remove indices corresponding to locations within the electronic document of portions of the stylized sub-element;

updating the electronic document to remove the stylized sub-element; and

displaying the updated electronic document at the user device.

7. The method of claim 1 , further comprising updating the plurality of indices based on the mutation.

8. The method of claim 1 , further comprising determining the plurality of indices based on a one-dimensional text string containing the electronic document.

9. The method of claim 1 , further comprising:

receiving, at the processor, a second mutation to the electronic document;

determining, by the processor, that the second mutation does not modify the stylized sub-element;

updating the plurality of indices based on the second mutation;

updating the electronic document based on the second mutation; and

displaying the updated electronic document at the user device.

10. The method of claim 9 , wherein determining that the second mutation does not modify the stylized sub-element comprises determining that a location index of the second mutation is not between a start index of the plurality of indices and an end index of the plurality of indices.

11. A system to update a stylized sub-element in an electronic document, the system comprising:

a memory; and

a processor, coupled to the memory, to perform operations comprising:

storing, in a data store, a plurality of indices corresponding to locations within the electronic document of portions of the stylized sub-element, wherein the stored plurality of indices is stored in a cache that is separate from data defining the electronic document, and wherein the stylized sub-element is associated with one or more styles for a plurality of portions of the stylized sub-element;

receiving a mutation to the electronic document;

determining, based on the plurality of indices stored in the separate cache, that the mutation pertains to the stylized sub-element, and that the mutation causes a style of one or more portions of the plurality of portions of the stylized sub-element to be changed to a different style;

updating, based on the mutation, the stylized sub-element; and

causing the one or more portions of the updated stylized sub-element to be displayed at a user device using the different style.

12. The system of claim 11 , wherein determining that the mutation pertains to the stylized sub-element comprises determining that a location index of the mutation is between a start index of the plurality of indices and an end index of the plurality of indices.

13. The system of claim 12 , wherein:

determining that the mutation pertains to the stylized sub-element further comprises determining that the mutation contains a marker of a structural feature of the stylized sub-element; and

the operations further comprise updating the plurality of indices to include an additional index corresponding to a location of the marker within the electronic document.

14. The system of claim 11 , wherein the operations further comprise:

storing, in the data store, a partial index corresponding to a location within the electronic document of a partial stylized sub-element;

storing, in the data store, a text string containing the partial stylized sub-element;

receiving a second mutation to the electronic document;

determining, based on the partial index, that the second mutation modifies the partial stylized sub-element; and

modifying the text string based on the second mutation.

15. The system of claim 14 , wherein the operations further comprise:

determining that the second mutation completes the partial stylized sub-element to result in a completed stylized sub-element;

modifying the plurality of indices to include additional indices corresponding to locations within the electronic document of portions of the completed stylized sub-element;

updating the electronic document to include the completed stylized sub-element; and

displaying the updated electronic document at the user device.

16. The system of claim 11 , wherein the operations further comprise:

receive a third mutation to the electronic document;

determine that the third mutation modifies the stylized sub-element in the electronic document to result in a partial stylized sub-element;

store, in the data store, a partial index corresponding to a location within the electronic document of the partial stylized sub-element;

store, in the data store, a text string containing the partial stylized sub-element;

update the plurality of indices to remove indices corresponding to locations within the electronic document of portions of the stylized sub-element;

update the electronic document to remove the stylized sub-element; and

display the updated electronic document at the user device.

17. The system of claim 11 , wherein the operations further comprise updating the plurality of indices based on the mutation.

18. A non-transitory computer-readable medium comprising instructions to cause a processor to perform operations to update a stylized sub-element in an electronic document, the operations comprising:

storing, in a data store, a plurality of indices corresponding to locations within the electronic document of portions of the stylized sub-element, wherein the stored plurality of indices is stored in a cache that is separate from data defining the electronic document, and wherein the stylized sub-element is associated with one or more styles for a plurality of portions of the stylized sub-element;

receiving a mutation to the electronic document;

determining, based on the plurality of indices stored in the separate cache, that the mutation pertains to the stylized sub-element, and that the mutation causes a style of one or more portions of the plurality of portions of the stylized sub-element to be changed to a different style;

updating, based on the mutation, the stylized sub-element; and

causing the one or more portions of the updated stylized sub-element to be displayed at a user device using the different style.

19. The non-transitory computer-readable medium of claim 18 , wherein determining that the mutation pertains to the stylized sub-element comprises determining that a location index of the mutation is between a start index of the plurality of indices and an end index of the plurality of indices.

20. The non-transitory computer-readable medium of claim 19 , wherein:

determining that the mutation pertains to the stylized sub-element further comprises determining that the mutation contains a marker of a structural feature of the stylized sub-element; and

the operations further comprise updating the plurality of indices to include an additional index corresponding to a location of the marker within the electronic document.

Assignments (2)
CHANGE OF NAME Recorded Mar 31, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 052280/0089 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2020
From: HALL, LINDSAY GRACE; PALM, JEFFREY DE BLANC; CHOU FRITZ, VICTORIA HSIAO-TSUNG; THOMAS, MICHAEL OWEN
To: GOOGLE INC.
Reel/Frame 052081/0244 →
Continuity (1)
Continuation 14703811 · May 4, 2015