[Jquery] Dubbio sul tag meta refresh aggiunto dinamicamente

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
Salve a tutti,
vorrei aggiungere dimenticante il tag meta
Codice:
<meta http-equiv="refresh" content="30">

Il tempo deve essere espresso in secondi, in questo caso parliamo di 30 secondi, esatto?

Il tag viene aggiunto dimenticamene secondo il valore di un checkbox:
Codice:
$('head').append('<meta http-equiv="refresh" content="30">');

e rimosso con
Codice:
$('meta[http-equiv="refresh"]').remove();

Adesso mi chiedo: l'inserimento del TAG in maniera dinamica, viene elaborato subito dalla pagina oppure no?

Grazie.
 
Ciao,
Adesso mi chiedo: l'inserimento del TAG in maniera dinamica, viene elaborato subito dalla pagina oppure no?
dipende: se scrivi così
HTML:
<head>
    <script>
        $('head').append('<meta http-equiv="refresh" content="30">');
    </script>
dovrebbe eseguirlo subito.
Scrivendo invece in questo modo attende il caricamento della pagina e poi esegue
HTML:
<head>
    <script>
        $(document).ready(function(){
            $('head').append('<meta http-equiv="refresh" content="30">');
        });        
    </script>
 
Grazie Criric, l'append all'head avviene eseguito al click su una checkbox, quindi non c'è alcun caricamento della pagina...

Dimenticavo, il mio è un progetto ASP.net, forse potrai trovare una soluzione migliore?
 
non ho ben capito l'utilizzo che ne devi fare ma per aggiornare la pagina puoi usare location.href
HTML:
<html>
    <head>
        <title>refresh</title>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <script type='text/javascript'>
            $(document).ready(function() {
                $("#refresh").change(function() {
                    if ($(this).is(':checked')) {
                        var refresh = setTimeout(function() {
                            location.href = "?"
                        }, 30000);
                    } else {
                        clearTimeout(refresh);
                    }
                });
            });
        </script>
    </head>
    <body>
        <input id='refresh' type='checkbox' name='refresh'/> Aggiorna pagina
    </body>
</html>
 
Ottimo, sei stato molto preciso e diretto.

Ho delle pagine con dei grafici che dovrei aggiornare ogni xx, quindi tramite una checkbox l'utente decidere si avviare un refresh automatico della pagina così da vedere i dati aggiornati oppure no.

Quindi dovrei inserire il valore della checkbox in sessione così da richiamarla nelle pagine interessate.
 
Potresti usare il local storage per memorizzare la scelta
L'esempio che ti ho postato diventerebbe cosi
HTML:
<html>
    <head>
        <title>refresh</title>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <script type='text/javascript'>
            $(document).ready(function() {
                if (localStorage.aggiornamento == 1) {
                    $("#refresh").attr("checked", "checked");
                }
                aggiornamentoAutomatico();
                $("#refresh").change(function() {
                    aggiornamentoAutomatico();
                });
            });
            function aggiornamentoAutomatico() {
                if ($("#refresh").is(':checked')) {
                    var refresh = setTimeout(function() {
                        location.href = "";
                    }, 30000);
                    localStorage.aggiornamento = 1;
                } else {
                    localStorage.aggiornamento = 0;
                    clearTimeout(refresh);
                }
            }
        </script>
    </head>
    <body>
        <input id='refresh' type='checkbox' name='refresh'/> Aggiorna pagina
    </body>
</html>
non ci ho ragionato molto potrebbero esserci errori di logica
 
[Risolto]
Ho delle pagine con dei grafici che dovrei aggiornare ogni xx, quindi tramite una checkbox l'utente decidere di avviare un refresh automatico della pagina così da vedere i dati aggiornati oppure no:

- inserisco il valore della checkbox in sessione perchè lo userò nelle altre pagine;
- sto usando delle componenti di terze parti, quindi non ho usato chiamate Ajax o Json, anche perchè l'aggiornamento avviene in un lasso di tempo molto lungo (orario!).

HTML:
Codice:
<input id="realTime" type="checkbox" value="true" name="realTime"> 
<span id="realTimeMsg"></span>

JS:
Codice:
<script>
    var refresh;

        $("input#realTime").click(function (event) {

            if ($(this).is(":checked")) {

                //Messaggio
                $("#realTimeMsg").text("(Attivo)").css({ "color": "green", "font-size": "12px" }).show("slow", function () {

                    refresh = setInterval('location.reload()', "60000");

                    //Inserisco il valore della checkbox in sessione
                    SaveToSession("sessioneRealTime", $("#realTime").val());

                    $("#realTimeMsg").delay(2000).fadeOut("slow");

                });

            } else {

                $("#realTimeMsg").text("(Non attivo)").css({ "color": "red", "font-size": "12px" }).show("slow", function () {

                    clearTimeout(refresh);

                    //Inserisco il valore della checkbox in sessione
                    RaGe.UnitPerf.SaveToSession("sessioneRealTime", $("#realTime").val());

                    $("#realTimeMsg").delay(2000).fadeOut("slow");

                });
            }
        });

    });

    $(document).ready(function () {

        //Verifico se ho già settato la checkbox del RealTime
        RaGe.UnitPerf.AjaxGetJSON("Home/RestoreFromSession?id=sessioneRealTime", null, function (data) {
            if (!data) {
                //Inserisco checkbo RealTime in sessione
                SaveToSession("sessioneRealTime", $("#realTime").val());
            } else {
                $("input[name=realTime]").attr('checked', "checked");
                refresh = setInterval('location.reload()', "@Def.realTimeSecond");
            }

        });

    });
</script>
 

Discussioni simili