O método getJson do jquery lê a mesma solicitação diretamente do cache após a primeira solicitação ao servidor para obter os dados retornados, e não solicita mais o banco de dados.
Veja como resolver isso:
1 Tornar a URL diferente para cada chamada Método: Adicionar um número aleatório ao parâmetro. Exemplo 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Exemplo 2: "xxx.aspx?randID="+Math.random Exemplo 3: "xxx.aspx?randID="+ escape(nova Data()) 2 Definir cache para False Versão sem cache em $.ajax: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alerta (msg);
} }); 3. Inclua a seguinte instrução no topo do arquivo labels.html:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expira" CONTEÚDO="-1"> 4. A função de carregamento pode não só chamar HTML, mas também script, como labels.php, você pode usar a função de cabeçalho no arquivo php:
<?php
cabeçalho("Cache-Control: no-cache, must-revalidate");
?> 5 Use o método de postagem em vez de obtenção. Ao usar o método de postagem, você precisa prestar atenção a: Defina o Context-Type do cabeçalho para application/x-www-form-urlencode para garantir que o servidor saiba que há variáveis de parâmetros na entidade. Normalmente usam o SetRequestHeader("Context-Type","application/x-www- form-urlencoded) do objeto XmlHttpRequest; ")。 Exemplo:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); O parâmetro é um par-chave-valor correspondente ao nome/valor, e cada par de valores é separado por um sinal de >. Por exemplo, nome da vara=abc&sex=homem&idade=18, preste atenção na name=update.php?
abc&sex=homem&idade=18 e var name=?abc&sex=homem&idade=18 são escritos incorretamente; O argumento é enviado no método Send, por exemplo: xmlHttp.send(name); Se for um método get, direto xmlHttp.send(null);
O parâmetro de solicitação do lado do servidor distingue entre Obter e Postar. Se for o método get, então $username = $_GET["nome de usuário"]; Se for um método post, então $username = $_POST["username"]; 6 Adicionar cabeçalho ("Cache-Control: no-cache, must-reva lidate") no lado do servidor; 7 Adicionar xmlHttpRequest.setRequestHeader("If-Modified-Since","0") antes que ajax envie a solicitação; 8 Adicionar xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") antes que o ajax envie a solicitação;
|