Metoda getJson w jquery odczytuje to samo żądanie bezpośrednio z pamięci podręcznej po pierwszym żądaniu do serwera w celu uzyskania zwróconych danych i nie żąda już bazy danych.
Oto jak to naprawić:
1 Ustal, by adres URL był inny dla każdego połączenia Metoda: Dodaj losową liczbę do parametru. Przykład 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Przykład 2: "xxx.aspx?randID="+Math.random Przykład 3: "xxx.aspx?randID="+ escape(new Date()) 2 Ustaw pamięć podręczną na False Wersja bez buforowania $.ajax: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alert(msg);
} }); 3. Umieść następujące stwierdzenie na górze pliku labels.html:
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Wygasa" CONTENT="-1"> 4. Funkcja ładowania może wywoływać nie tylko HTML, ale także skrypty, takie jak labels.php, możesz użyć funkcji nagłówka w pliku php:
<?php
nagłówka ("Cache-Control: no-cache, must-revalidate");
?> 5 Użyj metody post zamiast get. Stosując metodę Post, musisz zwrócić uwagę na: Ustaw Context Type nagłówka na application/x-www-form-urlencode, aby upewnić się, że serwer wie, że w encji znajdują się zmienne parametrów. Zazwyczaj używa się nagłówka SetRequest("Context-Type","application/x-www- form-urlencoded) obiektu XmlHttpRequest; ")。 Przykład:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Parametr jest parą klucz-wartość odpowiadającą nazwie/wartości, a każda para wartości jest oddzielona znakiem >. Na przykład, var name=abc&sex=man&age=18, zwróć uwagę na var name=update.php?
abc&sex=man&age=18 oraz var name=?abc&sex=man&age=18 są błędnie zapisane; Argument jest wysyłany metodą Send, np. xmlHttp.send(name); Jeśli jest to metoda get, należy bezpośrednio xmlHttp.send(null);
Parametr żądania po stronie serwera rozróżnia Get i Post. Jeśli jest to metoda get, to $username = $_GET["username"]; Jeśli jest to metoda post, to $username = $_POST["username"]; 6 Dodaj nagłówek ("Cache-Control: no-cache, must-reva lidate") po stronie serwera; 7 Dodaj xmlHttpRequest.setRequestHeader("If-Modified-Because","0") przed wysłaniem żądania przez Ajax; 8 Dodaj xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") przed wysłaniem żądania przez Ajax;
|