IP Library Granted Patent US 10,769,234
Granted Patent B2
US 10,769,234 · App. 15/680,418 · Granted Sep 8, 2020

Document object model transaction crawler

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 10,769,234
App. No.
15/680,418
Granted
Sep 8, 2020
Kind
B2
Abstract

Examples herein involve a document object model (DOM) transaction crawler. Examples herein involve identifying an event in a first state of a document object model. The event is executed to cause a state change from the first state of the document object model to a second state of the document object model. Furthermore, the state change is stored in a transaction log to store the difference between the first state of the document object model and the second state of the document object model.

Claims (53)

1. A method performed by a system comprising a hardware processor, comprising:

identifying a first event in a first state of a document object model (DOM) of an application;

executing the first event to cause a first state change from the first state of the DOM to a second state of the DOM;

recording the first state change in a transaction log, the first state change comprising a difference between the first state of the DOM and the second state of the DOM, wherein the transaction log further contains a plurality of state changes of the DOM, the plurality of state changes comprising a second state change recorded in the transaction log responsive to a second event that caused the second state change of the DOM; and

reverting the DOM from the second state of the DOM to the first state of the DOM; and

after reverting the DOM from the second state to the first state,

retrieving the plurality of state changes from the transaction log,

implementing the plurality of state changes retrieved from the transaction log to traverse the DOM from the first state to a third state of the DOM without re-executing the first event and the second event, and

execute a third event to cause a further state change of the DOM from the third state to another state of the DOM.

2. The method of claim 1 , further comprising creating the DOM from a hypertext markup language of a universal resource locator.

3. The method of claim 1 , further comprising:

determining that a fourth event is a sibling event of the first event in the first state of the DOM; and

executing the sibling event to cause a state change from the first state of the DOM to a different state of the DOM.

4. The method of claim 1 , further comprising:

recording the further state change in the transaction log.

5. The method of claim 1 , wherein the second state change of the DOM is from the first state to a fourth state of the DOM.

6. The method of claim 5 , wherein the plurality of state changes further comprise a third state change of the DOM from the fourth state to the third state of the DOM, and wherein the implementing of the plurality of state changes comprises implementing the third state change in the DOM without executing a fourth event that caused a recording of the third state change in the transaction log.

7. The method of claim 1 , further comprising:

determining that no sibling events of the first event remain in the first state of the DOM, wherein the retrieving, the implementing, and the executing of the third event are in response to the determining that no sibling events of the first event remain in the first state of the DOM.

8. A non-transitory machine readable medium comprising instructions that, when executed, cause a machine to:

identify a first state change in a document object model (DOM) of an application in response to executing a first event of a first state of the DOM, the first state change comprising a difference between the first state of the DOM and a second state of the DOM;

store the first state change in a transaction log, wherein the transaction log further contains a plurality of state changes of the DOM, the plurality of state changes comprising a second state change recorded in the transaction log responsive to a second event that caused the second state change of the DOM;

after the first state change from the first state of the DOM to the second state of the DOM, revert the DOM from the second state of the DOM to the first state of the DOM; and

after reverting the DOM from the second state to the first state,

retrieve the plurality of state changes from the transaction log,

implement the plurality of state changes retrieved from the transaction log to traverse the DOM from the first state to a third state of the DOM without re-executing the first event and the second event, and

execute a third event to cause a further state change of the DOM from the third state to another state of the DOM.

9. The non-transitory machine readable medium of claim 8 , wherein the instructions, when executed, cause the machine to:

determine if any remaining sibling event of the first event exists in the first state of the DOM;

if no remaining sibling event of the first event exists in the first state of the DOM, perform the retrieving, the implementing, and the executing of the third event.

10. The non-transitory machine readable medium of claim 9 , wherein the instructions, when executed, cause the machine to:

if a remaining sibling event of the first event exists in the first state of the DOM, execute the remaining sibling event.

11. The non-transitory machine readable medium of claim 8 , wherein the instructions, when executed, cause the machine to:

generate the DOM from a hypertext markup language of the application.

12. The non-transitory machine readable medium of claim 8 , wherein the second state change is from the first state to a fourth state of the DOM.

13. The non-transitory machine readable medium of claim 9 , wherein the instructions, when executed, cause the machine to determine if any remaining sibling event of the first event exists based on a breadth-first crawl of the DOM.

14. The non-transitory machine readable medium of claim 12 , wherein the plurality of state changes further comprise a third state change of the DOM from the fourth state to the third state of the DOM, and wherein implementing the plurality of state changes comprises implementing the third state change in the DOM without executing a fourth event that caused a recording of the third state change in the transaction log.

15. An apparatus comprising:

a processor; and

a non-transitory storage medium storing instructions executable on the processor to:

identify a first event in a first state of a document object model (DOM) of an application;

execute the first event to cause a first state change from the first state of the DOM to a second state of the DOM;

record the first state change in a transaction log, wherein the transaction log further contains a plurality of state changes of the DOM, the plurality of state changes comprising a second state change recorded in the transaction log responsive to a second event that caused the second state change of the DOM:

revert the DOM from the second state of the DOM to the first state of the DOM; and

after reverting the DOM from the second state to the first state,

retrieve the plurality of state changes from the transaction log,

implement the plurality of state changes retrieved from the transaction log to traverse the DOM from the first state to a third state of the DOM without re-executing the first event and the second event, and

execute a third event to cause a further state change of the DOM from the third state to another state of the DOM.

16. The apparatus of claim 15 , wherein the instructions are executable on the processor to use a breadth-first crawl to identify events of the DOM to execute.

17. The apparatus of claim 15 , wherein the instructions are executable on the processor to use a depth-first crawl to identify events of the DOM to execute.

18. The apparatus of claim 15 , wherein the instructions are executable on the processor to create the DOM from a hypertext markup language of the application.

19. The apparatus of claim 15 , wherein the second state change is from the first state to a fourth state of the DOM.

20. The apparatus of claim 19 , wherein the plurality of state changes further comprise a third state change of the DOM from the fourth state to the third state of the DOM, and wherein implementing the plurality of state changes comprises implementing the third state change in the DOM without executing a fourth event that caused a recording of the third state change in the transaction log.

Assignments (7)
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 043675/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2017
From: SWEDLUND, THOMAS CHRISTOPHER; WILLIAMS, KEVIN ALLEN; KING, BRIAN CHARLES
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 043333/0609 →