Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.08.2021, 10:58
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,577

А думаете в этих замороженных вкладках может и время тоже тормозить?
Сделал проверку по Date.now() и вроде как не помогло.
Проверяю метками что если прошло 5 минут, то...
Они реально прошли, а эта проверка не сработала
Ответить с цитированием
  #12 (permalink)  
Старый 30.08.2021, 13:46
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от micscr
Проверяю метками что если прошло 5 минут, то...
А как проверяете, когда вкладка закрыта?
Комп за это время в спячку не уходит?

А вообще, хотелось бы видеть хотя бы макет кода, что бы попытаться понять, что у вас происходит.
Ответить с цитированием
  #13 (permalink)  
Старый 30.08.2021, 14:45
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Вот такой тест
<!DOCTYPE html>
<html class=" ">
<head>
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<body>
<button id='but'>Start</button>
<div id='res'></div>
<script>
const but = document.getElementById('but')
const res = document.getElementById('res')
const dt = 5*1000;
let dtim  
let t0
const check = () => {
	let t = performance.now();
	const dtim = new Date().toLocaleTimeString('ru')	
	res.innerHTML += `<span style="color:${document.hidden?'blue':'red'}">${dtim} Check ${((t-t0)/1000).toFixed(2)}</span><br>`;
	t0 = t
	setTimeout (check, dt)
}

but.addEventListener('click', () => {
	t0 = performance.now();
	const dtim = new Date().toLocaleTimeString('ru')
	res.innerHTML = `${dtim} Start<br>`;
	setTimeout (check, dt)
})
</script>
</body>
</html>


На Chrome у меня получается следующее
Если dt - интервал устанавливаемый в setTimeout, то в неактивной вкладке он становится таким
Первые 5 мин неактивности - dt + 1сек
После 5 мин - max(dt, 60) + 1сек

Если setTimeout вызван до 5 мин неактивности, а сработать функция должна после, то результирующий интервал получается каким то промежуточным, вероятно прибавляется не 60 сек, а пропорционально времени, превышающим 5 мин.

Последний раз редактировалось voraa, 30.08.2021 в 14:58.
Ответить с цитированием
  #14 (permalink)  
Старый 30.08.2021, 15:14
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,577

Сообщение от voraa Посмотреть сообщение
А как проверяете, когда вкладка закрыта?
Я этого не проверяю.
Начальная временная метка - когда открылась страница с формой.
Проверочная - та, когда обработчик setTimeout вызвался.

Но вроде приняли мое решение, может они что то напутали с тем что мой последний вариант(где метки сравнивал) не работает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клик мышкой в неактивной вкладке mozhunt Opera, Safari и др. 10 28.06.2018 18:37
Расширение Google Chrome событие загрузки страницы на вкладке grigandal Javascript под браузер 3 18.02.2018 23:34
выполнение скрипта в неактивной вкладке parampam23 Events/DOM/Window 11 26.01.2018 11:59
Проблема с setTimeout при первой загрузке в Chrome slobodchuk jQuery 1 17.02.2012 02:16
Открыть сылку в новой неактивной вкладке vah-smile Элементы интерфейса 5 14.08.2011 20:22