Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558

    setTimeout() su Safari, Chrome e Opera

    Ciao a tutti. Ho un problemino. Ho un javascript in una pagina che deve caricare tramite AJAX una variabile, visualizzarla, e quindi riaggiornarla dopo un secondo. Per fare questo uso un setTimeout() di un secondo ogni volta ricevo la risposta AJAX. Questo deve funzionare anche quando la pagina è in caricamento o sta inviando dati POST (in pratica quando faccio il submit di un form).

    Con Firefox e IE funziona tutto, ma con Safari, Opera e Chrome, il setTimeout() smette di funzionare nel momento in cui carico una nuova pagina o quando invio dati POST (cioè, quando l'inivio è lungo, ho bisogno che il setTimeout() continui a funzionare).

    Come mai succede questo? Come posso risolvere?


    EDIT: ho notato che il problema si verifica a causa della chiamata AJAX; in pratica il browser si rifiuta di farla quando sta caricando la pagina stessa...

  2. #2

    Re: setTimeout() su Safari, Chrome e Opera

    Originariamente inviato da JoeP
    Con Firefox e IE funziona tutto, ma con Safari, Opera e Chrome, il setTimeout() smette di funzionare nel momento in cui carico una nuova pagina o quando invio dati POST (cioè, quando l'inivio è lungo, ho bisogno che il setTimeout() continui a funzionare).
    nel momento in cui lasci la pagina, non importa se continui a vederla, quella pagina non esiste più e il browser sta già aspettando risposta dall'altra.

    E' normalissimo che il browser smetta di eseguire il contenuto della pagina al fine di liberare memoria o evitare di usare CPU ed attendere che la pagina successiva cominci a scaricarsi.

    Un timeout di un secondo è un suicidio, se hai tanti utenti il server farà una fatica in mane e per cosa ... un orologio?

    Spiega cosa vorresti fare o a cosa ti serve questa chiamata perchè così come l'hai messa sa solo di pessimo design logico dell'applicazione.
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Ovviamente non è un orologio, non sono così stupido! XD
    E' un controllo sui dati POST che il browser sta inviando sul server: una specie di progress bar per upload, ma non proprio, è complicato da spiegare.
    Non credo ci sia rischio di sovraccarico, perchè verrà attivato solo in determinati momenti. Per dire, se su 1000 visitatori solo 2 stanno facendo questo lavoro, è già tanto...

    Ho capito riguardo al comportamento di Safari e Opera. Diciamo che non hanno tutti i torti a far così...

    Per ora ho risolto in questo modo. Su FF e IE, dove funziona, tutto normale. Per gli altri (saranno si e no un 5%) apro un popup con quelle informazioni.

    Ma se ci sono altre soluzioni sono tuttì'orecchi.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.