View Full Version : [Jquery] Dubbio sul tag meta refresh aggiunto dinamicamente
robertino_salemi
27-05-2014, 11:55
Salve a tutti,
vorrei aggiungere dimenticante il tag meta
<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:
$('head').append('<meta http-equiv="refresh" content="30">');
e rimosso con
$('meta[http-equiv="refresh"]').remove();
Adesso mi chiedo: l'inserimento del TAG in maniera dinamica, viene elaborato subito dalla pagina oppure no?
Grazie.
robertino_salemi
27-05-2014, 14:26
Dimenticavo, il mio è un progetto ASP.net, forse potrai trovare una soluzione migliore?
non capisco di preciso cosa vuoi ottenere ma credo proprio che aggiungendo il tag dopo che la pagina sia già stata caricata, non succede nulla perchè il browser ha già fatto il rendering della pagina e letto i metatag, e quando l'ha fatto caricando la pagina quel meta tag non era presente.
se vuoi solo refreshare la pagina dopo 30secondi lo puoi fare solo di javascript mettendo un timeout dopo 30 secondi e ricaricare la pagina.
se il tuo intento è quello di far si che la pagina venga refreshata ogni 30 secondi e continui a farlo SE uno ha selezionato il checkbox potresti farlo in due modi, memorizzando questo stato nel backend e quindi servire la pagina con già il meta tag allegato in modo che si refresherà, oppure puoi salvare qualcosa in locale tipo local storage e dire che se c'è X la pagina si refresha dopo 30 sec (tutto tramite javascript)
detto questo qual'è lo scopo di refreshare l'intera pagina? qualche dato è cambiato?
sarebbe meglio in tal caso evitare di ricaricare tutta la pagina ma scaricare solo il contenuto che è cambiato (con un json magari) e renderizzarlo sulla pagina tramite js
robertino_salemi
27-05-2014, 17:28
[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:
<input id="realTime" type="checkbox" value="true" name="realTime">
<span id="realTimeMsg"></span>
JS:
<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>
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.