Как продолжить выполнение функции на сайте после закрытия вкладки?
Здравствуйте!
У меня на сайте есть js-функция с setInterval внутри, которая может выполняться очень много времени (зависит от значения некоторых переменных), как можно сделать так, чтобы она выполнялась даже в тот момент, когда пользователь покинет сайт?
Это что-то вроде онлайн игры, где пользователь имеет возможность сажать морковь, каждая из которых растёт 5 минут, и этих овощей можно посадить очень много, из-за чего придётся соответствующее ждать.И главный вопрос в том, как сделать так, чтобы морковь росла даже когда пользователь покинул сайт?
Было бы круто, если б функция продолжала работать когда пользователь покинул сайт, закрыл браузер, и вообще вырубил комп. Я б тогда намайнил...
Но пока техника до такого не дошла, придется делать как все:
при следующем входе юзера проверять сколько прошло времени, и рисовать морковь прям пачками.
Или на стороне сервера крутить это вот все, тогда юзеру еще и хакнуть количество моркови будет сложнее.
Никак, так как нельзя на стороне сайта запретить браузеру, выгружать вкладку из памяти, если она потеряла фокус. У вас должна быть функция для расчета роста моркови в зависимости от времени посадки и текущей даты. Соответственно, каждый раз когда пользователь возвращается на сайт или возвращает фокус на вкладку обратно, вы через эту функцию считайте насколько выросла морковь и показывайте пользователю текущий прогресс.
P. S. Важный момент, при расчете вы НЕ должны опираться на локальное время пользователя, всегда запрашивайте текущее время из какого-нибудь внешнего источника, так как игроку ни что не мешает на компе тупо перевести часы вперёд.