GRAVITY has been developed to reduce enterprise learning costs and lower the impact of application updates. To ensure this GRAVITY detects if learning content and application are not in sync. If this is detected, a notification is automatically sent to the application owner. The owner can then update the learning content to reflect the updated application. This ensures that the learning content and documentation is always up-to-date.
Technically this is achieved by analyzing the DOM tree of a web application. With more complex applications simple, static comparison of the DOM tree are not sufficient. To ensure best results, we have developed an algorithm which uses various elements to track and monitor the DOM tree of a web application.
Our "discovery" algorithm has five steps to detect changes:
Hotspots never disappear. If they cannot be assigned to an element, our "hotspot collector" reclaims and displays those hotspots. In moste cases we can automatically rebind a hotspot to an application, this table lays out (in DOM mode) where this is the case:
Case | Can we rebind the content |
---|---|
DOM element class name changed | No, element.className is our primary handle, if it changes, we can never find the element again (see div.name above) |
DOM element's parent class name changed | Yes |
Text of a button changed from "New" to "Create" | Yes (see finding step 2) |
Position of a button changed inside his parent container | No, not yet, it may come with step 5 soon. |
Position of a button has changed abroad his parent container | Yes (see finding step 3) |
Text and class name of a button changed | Still no, element.className is vital |
Position in a list of links changed | Yes (see step 4) |
If hotspot elements cannot be easily assigned to an application, GRAVITY users can always fall back to our Hotspot Grid. This allows to layout hotspots independently of the DOM model.