- Home
- Categorie
- Coding e Sistemistica
- PHP
- Refresh pagina Ajax
-
Refresh pagina Ajax
Ciao a tutti
ho costruito un semplice calendario per gli appuntamenti e, al fine di rendere l'esperienza utente più piacevole ho gestito l'aggiornamento della pagina relativa al cambio data con Ajax<div style="width:40%;margin:auto;float:left"> <a href="#" onclick="varia_data(<?php echo "'".$data."'"?>,-1)"><img src="../images/icons/frecciaSx.png"></a> </div> <div style="width:20%;margin:auto;float:left">Giornata del: <?php echo " ".$data;?></div> <div style="width:40%;margin:auto;float:left"> <a href="#" onclick="varia_data(<?php echo "'".$data."'"?>,+1)"><img src="../images/icons/frecciaDx.png"></a> </div>
e la funzione varia_data è la seguente
function varia_data(data, variazione) { giorno = data; document.getElementById("div_nuovo_appuntamento").style.display = "none"; document.getElementById("div_cancella_appuntamento").style.display = "none"; document.getElementById("risultato_salvataggio").style.display = "none"; $.ajax({ url: "../jquery/visualizza_agenda.php", type: "get", data: "giorno=" + data + "&var="+variazione, success: function (response) { $("#divAgenda").html(response); }, error: function() { alert("errore di connessione"); } }); }
il problema è che alcune volte è come se la pagina non venisse aggiornata, poiché gli appuntamenti del giorno dopo (salvati nel db) non compaiono.
E' possibile forzare in qualche modo il caricamento della pagina?
Grazie
-
Ciao!!
La funzionalità che stai creando è molto interessante e sicuramente rappresenta un "must". Ormai siamo troppo abituati all'ajax nella navigazione dei calendari (cosa buona e giusta) e un refresh della pagina farebbe storcere il naso all'utente.
Due cose:-
puoi caricare uno screenshot del layout della pagina (sezione calendario)? Credo potrebbe essere un'ispirazione utile per molti altri utenti e probabilmente otterresti anche qualche utile consiglio per eventuali miglioramenti.
-
il tuo problema credo sia la cache; per ovviare al problema inserisci "cache:false" tra le opzioni di $ajax.
Fammi sapere (il tuo feedback è indispensabile per confermare la soluzione)
Buon lavoro
-
-
Ciao
scusa ma a causa di impegni leggo solo ora. l'istruzione cache false la inserisco all' interno del $.ajax({ prima dell'istruzione url?
Grazie
-
Ciao!!
Nessun problema
Sì... inserisci lì il parametro "cache: false,".
Fai sapere se ha funzionato.- puoi caricare uno screenshot del layout della sezione calendario della pagina in questione? Credo potrebbe essere un'ispirazione utile per molti altri utenti e probabilmente otterresti anche qualche utile consiglio per eventuali miglioramenti.
-
ho inserito il parametro cache false, ora vedo se funziona, Per la screenshot dove la carico?
-
Come è andato il test? Spero tutto ok.
Per l'immagine basta che la carichi sul tuo sito e poi qui sul forum clicchi il bottone "inserisci immagine" nel tuo messaggio (a quel punto inserisci il link all'immagine ed è tutto fatto).
In sostanza, basta che carichi l'immagine da qualche parte e poi la riporti qui.In alternativa puoi linkare la pagina del tuo sito in cui hai implementato la funzionalità calendario.
Vedi tu cosa preferisci fare
-
I primi test tutto ok, ora li sto ultimando e in serata scrivo un piccolo report con l'immagine allegata.
Purtroppo non posso linkare il sito poiché si tratta di un'area riservata. In giornata carico tutto
-
Eccomi
allora da quello che mi ha detto il cliente sembra che il problema sia stato risolto!
ora cerco un servizio per caricare l'immagine
-
Ciao!!
Felice che il problema sia stato risolto!! Bravo
-
Ciao
torno a scrivere perché il problema sembra non essere risolto solo su un pc che utilizza IE e attraverso il quale accedono più utenti diversi. In questo caso sembra che la pagina stenti a ricaricarsi anche mettendo cache: false. E' possibile?
-
Ciao!!
Che fine ha fatto lo screenshot?
-
Eccola, purtroppo mancano metà degli orari perché non ci stava tutta però sono solo il resto delle ore...
-
Ciao! Lessi su internet se non erro che questo problema con Internet Explorer si verificava se non impostavi cache:false come un boolean.
Per farla breve deve essere:
cache: false
E non
cache: "false"
Inoltre dai anche un'occhiata a questa funzione per disabilitare la cache globalmente: api.jquery.com/jQuery.ajaxSetup/
Ciao!
-
ma per gli altri browser invece lascio cache:"false" oppure posso mettere cache:false per tutti?
-
Confermo quanto scritto sopra.
Comunque se noti, all'interno dei messaggi precedenti, false era scritto senza "".
cache: false, per tutti.
-
chiedo scusa per l'abbaglio ma nel mio codice era già cache: false..quindi il problema non è quello mi sa
$.ajax({ cache: false, url: "../jquery/visualizza_agenda.php", type: "get", data: "giorno=" + data + "&var="+variazione, success: function (response) { $("#divAgenda").html(response); }, error: function() { alert("errore di connessione"); } });
-
Ho provato ad aggiungere all'header di tutte le pagine questo script, da quello che leggo nel link sottostante sembra sia la soluzione da utilizzare con IE
http://stackoverflow.com/questions/1013637/unexpected-caching-of-ajax-results-in-ie8
$.ajaxSetup({ cache: false});
spero sia la volta buona