IP Library Granted Patent US 12,019,690
Granted Patent B1
US 12,019,690 · App. 17/521,794 · Granted Jun 25, 2024

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/316G06F16/328G06F16/951G06F40/177
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 12,019,690
App. No.
17/521,794
Granted
Jun 25, 2024
Kind
B1
Abstract

Systems and methods are disclosed herein for caching structural elements of electronic documents. A plurality of indices is stored in a data store. The plurality of indices corresponds to locations within an electronic document of portions of a stylized sub-element. A mutation to the electronic document is received and it is determined that the mutation pertains to a style of the stylized sub-element. Based on the mutation and the plurality of indices, the stylized sub-element is updated, and the portions of the updated stylized sub-element are caused to be displayed at a user device using a different style.

Claims (85)

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

determining, by a processor and without any user input, a plurality of indices corresponding to locations within the electronic document of a plurality of portions of the stylized sub-element, wherein the stylized sub-element is associated with one or more styles for the plurality of portions of the stylized sub-element;

storing, by the processor and without any user input, the plurality of indices corresponding to the locations within the electronic document of the plurality of portions of the stylized sub-element, wherein the plurality of indices is stored in addition to data defining the electronic document;

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

responsive to receiving the mutation, determining, by the processor and without any user input, that the mutation pertains to a style of the stylized sub-element, and that a type of the mutation pertains to one or more portions of the plurality of portions of the stylized sub-element, wherein the one or more portions of the plurality of portions of the stylized sub-element are each associated with a conditional style that depends on a location of a respective portion of the stylized sub-element within the electronic document;

adjusting, in a cache, the plurality of indices based on size of mutation data associated with the mutation;

automatically updating, by the processor and based on the mutation and the plurality of indices corresponding to the locations of the plurality of portions of the stylized sub-element within the electronic document, the stylized sub-element; and

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

2. The method of claim 1 , wherein determining that the mutation pertains to the style of 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 style of 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 a 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 a 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 determining the plurality of indices based on a one-dimensional text string containing the electronic document.

8. 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.

9. The method of claim 8 , 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.

10. The method of claim 1 , wherein the plurality of indices is stored in a cache that is separate from the data defining the electronic document.

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:

determining, without any user input, a plurality of indices corresponding to locations within the electronic document of a plurality of portions of the stylized sub-element, wherein the stylized sub-element is associated with one or more styles for the plurality of portions of the stylized sub-element;

storing, without any user input, the plurality of indices corresponding to the locations within the electronic document of the plurality of portions of the stylized sub-element, wherein the plurality of indices is stored in addition to data defining the electronic document;

receiving a mutation to the electronic document;

responsive to receiving the mutation, determining, without any user input, that the mutation pertains to a style of the stylized sub-element, and that a type of the mutation pertains to one or more portions of the plurality of portions of the stylized sub-element, wherein the one or more portions of the plurality of portions of the stylized sub-element are each associated with a conditional style that depends on a location of a respective portion of the stylized sub-element within the electronic document;

adjusting, in a cache, the plurality of indices based on size of mutation data associated with the mutation;

automatically updating, based on the mutation and the plurality of indices corresponding to the locations of the plurality of portions of the stylized sub-element within the electronic document, the stylized sub-element; and

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

12. The system of claim 11 , wherein determining that the mutation pertains to the style of 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 style of 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 a 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:

receiving a third mutation to the electronic document;

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

storing, in a 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.

17. 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:

determining, without any user input, a plurality of indices corresponding to locations within the electronic document of a plurality of portions of the stylized sub-element, wherein the stylized sub-element is associated with one or more styles for the plurality of portions of the stylized sub-element;

storing, without any user input, the plurality of indices corresponding to the locations within the electronic document of the plurality of portions of the stylized sub-element, wherein the plurality of indices is stored in addition to data defining the electronic document;

receiving a mutation to the electronic document;

responsive to receiving the mutation, determining, without any user input, that the mutation pertains to a style of the stylized sub-element, and that a type of the mutation pertains to one or more portions of the plurality of portions of the stylized sub-element, wherein the one or more portions of the plurality of portions of the stylized sub-element are each associated with a conditional style that depends on a location of a respective portion of the stylized sub-element within the electronic document;

adjusting, in a cache, the plurality of indices based on size of mutation data associated with the mutation;

automatically updating, based on the mutation and the plurality of indices corresponding to the locations of the plurality of portions of the stylized sub-element within the electronic document, the stylized sub-element; and

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

18. The non-transitory computer-readable medium of claim 17 , wherein determining that the mutation pertains to the style of 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.

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

determining that the mutation pertains to the style of 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 Feb 9, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 058980/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2021
From: HALL, LINDSAY GRACE; PALM, JEFFREY DE BLANC; CHOU FRITZ, VICTORIA HSIAO-TSUNG; THOMAS, MICHAEL OWEN
To: GOOGLE INC.
Reel/Frame 058083/0549 →
Continuity (2)
Continuation 16512333 · Jul 15, 2019
Continuation 14703811 · May 4, 2015