PDA

View Full Version : [javascript] setTimeout()


darklook
15-11-2016, 15:45
salve ha tutti. con greasymonkey sono incappato in un problema.
Lo script interagisce con una pagina e lo fa molto bene. Ad un certo punto vorrei che smettesse ogni attività per circa 75 minuti per poi riprendere.
Esempio:

data = new Date()
if (data.getHours() == 4) setTimeout(function () { loadScript(); }, 4500000)
// questi comandi sono eseguiti al caricamento di ogni nuova pagina e loadScript() restituisce sempre un caricamento di una nuova pagina



allora settandolo con 75 minuti praticamente non da piu segni di vita e non carica piu la funzione loadScript()
mentre se lo setto con pochi minuti, giocando con l'orologio, affinche al temine del conteggio sono le 5, funziona come dovrebbe.
Al pc ho disattivato lo stanby quindi temo si tratta di firefox e quindi oggi voglio provare con chrome.
qualcuno ha avuto una esperienza simile?

darklook
16-11-2016, 19:27
aggiungo un dettaglio. questo problema esiste solo su firefox.
scrivendo solo:

setTimeout(function () { alert("finito"); }, 4500000)

quando dopo 2 ore o vado a controllare praticamente non appare nessun messaggio. basta muovere un po il mouse ed ecco comparire il messaggio.

su chrome con tampermonkey funziona regolare

wingman87
18-11-2016, 12:57
Probabilmente è una qualche configurazione di firefox. Io proverei ad andare in about:config e cercherei lì.

wingman87
18-11-2016, 13:04
Vedi anche qui: https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout#Reasons_for_delays_longer_than_specified

darklook
20-11-2016, 17:35
ho fatto un sacco di prove. non è firefox perche me lo fa anche crhome, quindi è il pc desktop che va tipo in protezione o risparmio energetico.
il portatile invece l'ho tenuto acceso per due giorni senza spegnerlo e ha funzionato perfettamente.

Ho controllato le impostazioni di risparmio energetico del desktop ed è tutto a posto. Uso una chiavetta wireless tp-link e nel risparmio energetico le porte usb nn le faccio disabilitare.

Non ho idee

darklook
21-11-2016, 10:57
ho usato un'altra chiavetta wireless Hamlet ma nessun risultato. Ho trovato nelle proprietà della chiavetta una spunta consenti al computer di disattivare la chiavetta per il risparmio energetico, l'ho tolta ma nulla, il pc continua a disattivarsi dopo un ora. Ma ho notato che non è un problema del setTimout del proprio del pc.
Anche uno script che mi fa aggiornare la pagina ogni 3 secondi dopo un ora si blocca...
tutto questo nel portatile no.
potrebbe essere la Ram?

Torsen_ITA
28-11-2016, 10:31
Potrebbe essere che va in stand by il disco?
Prova a giocare con questa API
https://msdn.microsoft.com/it-it/library/windows/desktop/aa373208(v=vs.85).aspx