Вы можете вспомнить последнее время "вызова" в сеансе или файлах cookie (что проще для javascript, но хуже для производительности и т. Д.), А затем
function check() {
// or var lasttime = <%= Session["lasttime"] %>;
if (now - $.cookie("lasttime") > timeout)
{
$.cookie("lasttime", now);
performAction();
}
window.setTimeout(check, 1000);
}
Вы можете вызвать функцию времени один раз из $ (document) .ready ().
Но учтите, что для отображения страницы браузеру может потребоваться несколько секунд, или он может столкнуться с ошибкой 404 или другими ошибками, и страница станет неактивной ... javascript не является надежным способом выполнения запланированных действий.
Другой способ - установить таймер на сервер . Функция JavaScript, как описано выше, будет просто время от времени запрашивать ее, передавая идентификатор пользователя или что-то в этом роде. Это предотвратит сброс таймера во время перезагрузки страницы. Но вам придется делать запрос слишком часто. Поэтому лучшим решением было бы объединить две техники:
- Запустить таймер на сервере
- Когда страница отображается, установите var inited = false;
- Запустите функцию выше, но вот так: if (! Inited) timer = $ .getJSON ("/ timer? Uid = x"); и когда у вас есть точный текущий таймер, вы можете продолжать только с JavaScript, без запросов к серверу.