Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,649

    chiamata ajax temporizzata "si blocca"

    con setInterval eseguo una chiamata temporizzata ad un file sul server per mantenere la sessione attiva, e qui tutto bene.

    a volte, dopo lunghe attese senza intervento umano sulla pagina, la chiamata sembra che non avvenga in quanto perdo la sessione.
    la cosa si verifica sia che la finestra del browser sia in primo piano o meno.

    sapete se questa azione programmata possa essere in qualche modo inibita dal browser? se si, ci sono rimedi per evitare che ciò avvenga?

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,505
    https://javascript.info/settimeout-setinterval

    se leggi qui ci sono un po' di info utili. tra freeze e gc
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,649
    dici che dovrei metterci un setTimeout?

    l'operazione non chiede al client di fare qualcosa

    codice:
    window.onload=function(){
    setInterval("loadXMLDoc()",180000)
    }
    
    //segue un'invocazione di un response.write, nient'altro... :stordita:

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,649
    trovato l'inghippo: il metodo di questa chiamata prima o poi schiatta.
    codice:
    window.onload=function(){
    setInterval("funzioneDaEseguire()",tempoIntervallo)
    }
    //segue funzioneDaEseguire...

    funziona invece senza problemi se la chiamata è fatta direttamente e inserita dopo la funzione da eseguire:
    codice:
    function nomeFunzione(){
                //....
            }
    setInterval("nomeFunzione()",tempoIntervallo);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.