El método getJson de jquery lee la misma petición directamente desde la caché tras la primera petición al servidor para obtener los datos devueltos, y ya no solicita la base de datos.
Así es como solucionarlo:
1 Hacer que la URL sea diferente para cada llamada Método: Añadir un número aleatorio al parámetro. Ejemplo 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Ejemplo 2: "xxx.aspx?randID="+Math.random Ejemplo 3: "xxx.aspx?randID="+ escape(nueva fecha()) 2 Poner caché en False Versión sin caché de $.ajax: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alerta (msg);
} }); 3. Incluir la siguiente sentencia en la parte superior del archivo labels.html:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Caduca" CONTENIDO="-1"> 4. La función de carga no solo puede llamar a HTML, sino también scripts, como labels.php, puedes usar la función de encabezado en el archivo php:
<?php
encabezado ("Cache-Control: no-cache, must-revalidate");
?> 5 Usa el método de publicación en lugar de obtener. Al utilizar el método de publicación, debes prestar atención a: Establece el tipo de contexto del encabezado en application/x-www-form-urlencode para asegurarse de que el servidor sepa que hay variables de parámetros en la entidad. Normalmente se utiliza el encabezado SetRequest("Context-Type","application/x-www- form-urlencoded) del objeto XmlHttpRequest; ")。 Ejemplo:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); El parámetro es un par clave-valor correspondiente al nombre/valor, y cada par de valores está separado por un signo de >. Por ejemplo, nombre de la vara=abc&sex=hombre&edad=18, ¿presta atención a la name=update.php?
abc&sex=hombre&edad=18 y var name=?abc&sex=hombre&edad=18 se escriben incorrectamente; El argumento se envía en el método Send, por ejemplo, xmlHttp.send(name); Si es un método get, directamente xmlHttp.send(null);
El parámetro de solicitud del lado del servidor distingue entre Obtener y Publicar. Si es el método get, entonces $username = $_GET["username"]; Si es un método de publicación, entonces $username = $_POST["username"]; 6 Añadir cabecera ("Cache-Control: no-cache, must-reva lidate") en el lado del servidor; 7 Añadir xmlHttpRequest.setRequestHeader("If-Modified-Since","0") antes de que ajax envíe la solicitud; 8 Añadir xmlHttpRequest.setRequestHeader("Cache-Control", "no-cache") antes de que ajax envíe la solicitud;
|