Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 12520|Risposta: 2

[Jquery] [Gira] a jQuery.getJSON problema di cache

[Copiato link]
Pubblicato su 05/09/2015 10:21:58 | | |
Il metodo getJson di jquery legge la stessa richiesta direttamente dalla cache dopo la prima richiesta al server per ottenere i dati restituiti, e non richiede più il database.

Ecco come risolverlo:

1 Rendere l'URL diverso per ogni chiamata
Metodo: Aggiungi un numero casuale al parametro.
Esempio 1:
jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){}
Esempio 2:
"xxx.aspx?randID="+Math.random
Esempio 3:
"xxx.aspx?randID="+ escape(nuova Data())
2 Imposta la cache su False
Versione non cachedata di $.ajax:
$.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){
allerta (msg);
}
});
3. Includere la seguente affermazione in cima al file labels.html:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

<META HTTP-EQUIV="Scadenza" CONTENT="-1">
4. La funzione di caricamento non può solo chiamare HTML, ma anche script, come labels.php, puoi usare la funzione header nel file php:

<?php

header("Cache-Control: no-cache, must-revalidate");

?>
5 Usa il metodo post invece che get.
Quando si utilizza il metodo Post, bisogna prestare attenzione a:
Imposta il Context-Type dell'intestazione su application/x-www-form-urlencode per assicurarsi che il server sappia che ci sono variabili parametri nell'entità. Di solito si usa l'intestazione SetRequest("Context-Type","application/x-www- form-urlencoded) dell'oggetto XmlHttpRequest; ")。 Esempio:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
Il parametro è una coppia chiave-valore corrispondente al nome/valore, e ogni coppia di valori è separata da un segno >. Ad esempio, var name=abc&sex=man&age=18, fai attenzione alla var name=update.php?

abc&sex=uomo&age=18 e var name=?abc&sex=uomo&età=18 sono scritti in modo errato;
L'argomento viene inviato nel metodo Send, ad esempio xmlHttp.send(name); Se si tratta di un metodo get, direttamente xmlHttp.send(null);

Il parametro di richiesta lato server distingue tra Get e Post. Se è il metodo get, allora $username = $_GET["username"]; Se si tratta di un metodo post, allora $username = $_POST["username"];
6 Aggiungi l'intestazione ("Cache-Control: no-cache, must-reva lidate") lato server;
7 Aggiungere xmlHttpRequest.setRequestHeader("If-Modified-Since","0") prima che ajax invii la richiesta;
8 Aggiungi xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") prima che ajax invii la richiesta;




Precedente:c# Converti \u64CD\u4F5C\u6210\u529F in cinese "Operazione Riuscita"
Prossimo:Validate jQuery html5Validate plugin basato su moduli HTML5
 Padrone di casa| Pubblicato su 05/09/2015 10:23:09 |
url?username=test&aaa= Math.random()
 Padrone di casa| Pubblicato su 05/09/2015 10:24:24 |
Metodo $.getJson Quando la stessa pagina viene richiesta ripetutamente, solo i dati vengono caricati dalla cache e l'URL deve essere seguito da parametri dinamici ogni volta che viene ricaricato
$.getJson('a.ashx?t='+nuova data() ,'{a:b}',diverti.... )
Modificare i parametri nella lista dei parametri è invalido.
function changeValidateCode(obj) {
//获取当前的时间作为参数,无具体意义
var timenow = nuova Data().getTime();
//每次请求需要一个不同的参数,否则可能会返回同样的验证码
Questo è collegato al meccanismo di cache del browser, e puoi anche impostare la pagina per non memorizzare in cache, così da non usare questo parametro.
obj.src='rand.action?d='+timenow;
}
<img id='rand' src='rand.action?t=<%=new Date().getTime() %>' onclick='changeValidateCode(this)' titolo='Non riesci a vedere chiaramente? Cambia uno! ' larghezza='50' altezza='22'/>
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com