Если вы получаете старые файлы cookie, которые могут быть связаны с тем, что ваша страница содержит много контента, а onload не вызывается перед onunload (потому что страница не заканчивает загрузку). Поэтому удалите файл cookie, вызвав что-то вроде этого как onload, так и onunload:
var deleted_cookie = false;
function delete_timestamp() {
if(!deleted_cookie) delete_cookie("beginrequest");
deleted_cookie = true;
}
У вас может также быть условие гонки, если вы загрузите следующую страницу достаточно быстро, чтобы файл cookie 'delete_cookie' не истек должным образом, и ваша реализация get_cookie подбирает это. Поэтому попробуйте изменить регулярное выражение в get_cookie только для получения файлов cookie со значением:
var results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]+)(;|$)');
Кроме того, если вы просматриваете сайт в нескольких окнах (или вкладке), их файлы cookie могут быть запутаны, поэтому не делайте этого. Но попробуйте использовать глобальное регулярное выражение, чтобы забрать все значения и использовать только последний.