Skip to Content

SharePoint keep alive met jQeury

Applicatie binnen SharePoint met een uitspa naar een tweede applicatie (ander domein). SharePoint heeft een session time out van 15 minuten, de tweede app ook. Mara hoe zorg je er nu voor dat de tweede applicatie (tijdens gebruik) SharePoint levend houd.

Hiervoor heeft mij collega een stuk javascript geschreven.

//
var sessionTimeoutConfig = 15; // 15 minuten is standaard
var sessionTimeout = timerValue = sessionTimeoutConfig * 60 * 1000; // 15 minuten * 60 * 1000 = 900000
var timeValue = sessionTimeout - 300000; // alert 5 minutes before
var intervalTime = 60000; // 1 minuut interval tijd
var keepAliveUrl = 'http://zmtwe132/_layouts/15/Spirit.eKantonrechter.SharePoint/blank.html';
var lastUpdate;
var checkInterval;

$(document).ready(function()
{
jQuery.support.cors = true;
checkInterval = setInterval(function(){timeOut()},intervalTime);
lastUpdate = new Date().getTime();
})

function timeOut()
{
var timeNow = new Date().getTime();
if(timeNow - lastUpdate > timeValue && timeNow - lastUpdate < sessionTimeout) { // laatste activiteit in laatste 5 minuten van session timeout dan waarschuwen
var dateTime = new Date();
dateTime.setMinutes(dateTime.getMinutes() + 5);
alert("Let op, u heeft het formulier "+((timeNow - lastUpdate)/60000).toFixed()+" minuten niet gebruikt. Indien u voor "+ dateTime.toLocaleTimeString()+" niet verder gaat met het formulier, zullen uw gegevens verloren gaan.");
if(new Date().getTime() - lastUpdate < sessionTimeout) { // wanneer session timeout na alert nog niet verstreken dan op tijd activiteit dus
lastUpdate = new Date().getTime();
}
}
if (new Date().getTime() - lastUpdate >= sessionTimeout) { // laatste activiteit langer geleden dan session timeout dan foutpagina
clearInterval(checkInterval);
window.location.href = '/Error.aspx';
}
if (new Date().getTime() - lastUpdate <= intervalTime) { // laatste activiteit minder dan intervaltijd geleden dan ververs sessie(s)
$.get('/blank.html');
if (keepAliveUrl != '') {
$.get(keepAliveUrl);
}
clearInterval(checkInterval);
checkInterval = setInterval(function(){timeOut()},intervalTime);
}
}

$(document).keydown(function()
{
lastUpdate = new Date().getTime();
clearInt