let intervals = {} // For all page loads that need to be instantaneous sort of function loadAllElementsWithDataUri() { $('[data-uri]').each(function () { const element = $(this) loadElementWithAjax(element) if (element.data('reload') !== undefined) { intervals[element.data('uri')] = setInterval(function () { loadElementWithAjax(element) }, parseInt(element.data('reload') ?? 750)) } }) } loadAllElementsWithDataUri() function reloadElementWithAjaxFromUrl(uri) { $('*[data-uri="' + uri + '"]').each(function () { loadElementWithAjax($(this)) }) } function stopReloadingFromUrl(uri) { $('*[data-uri="' + uri + '"]').each(function () { stopReloading($(this)) }) } function stopReloading(element) { clearInterval(intervals[element.data('uri')]) } function loadElementWithAjax(element) { $.get( element.data('uri'), function (response) { if (element.html() === response) { return } element.html(response) } ) }