I use it every time an action occurs. These things include a basic CRUD for each type of entity (user, content, tags, etc.), but many other operations (user login, user logout, module loading, module exit, etc.).
I also prefer to use the Visitor template after something is loaded or before something is saved (inserted or updated in the database) or before something (for example, a form) is rendered to change data structure.
Actions can be performed several times when the page loads.
source share