Moodle has a built-in session timeout which is described on https://docs.moodle.org/en/Session_handling#Timeout. The documentation tells you about the timeout:
If users don't load a new page during the amount of time set here, Moodle will end their session and log them out. Be sure this time frame is long enough to cover the longest test your teachers may offer. If a student is logged out while they are taking a test, their responses to the test questions may be lost.
Having read that, as an admin, you are in the difficult situation of, on the one hand, setting the timeout long enough to cover all cases when users input content into a Moodle page without reloading the page for a long time (for example taking a huge quiz or writing a long forum post) and, on the other hand, of setting the timeout short enough to prevent account abuse if a user forgets to log out of Moodle on a public computer.
To solve this dilemma, this plugin adds a keepalive check to the Moodle page which checks for unsent user input in the browser and keeps the user session alive as long as needed even if there is no full page load.
Please see README file for details about the usage and features of this plugin.
No support in the comments section on this page
Please note that we don't provide any support for this plugin in the comments section on this page anymore.
We appreciate your commendation and reviews for this plugin in the comments. For bug reports and support requests, please read the extensive information in the plugin's README file first and create, if needed, a ticket in the bug tracker which is linked below.
Thanks for your cooperation.