Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 12520|Válasz: 2

[Csípős] [Fordul] jQuery.getJSON gyorsítótára-problémához

[Linket másol]
Közzétéve 2015. 09. 05. 10:21:58 | | |
A jquery getJson módszere ugyanazt a kérést közvetlenül a gyorsítótárból olvassa az első szerverhez küldött kérés után, hogy megkapja a visszaküldött adatokat, és már nem kéri az adatbázist.

Íme, hogyan lehet ezt megoldani:

1 Legyen külön URL minden híváshoz
Módszer: Adj hozzá véletlenszámot a paraméterhez.
1. példa:
jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){}
2. példa:
"xxx.aspx?randID="+Math.random
3. példa:
"xxx.aspx?randID="+ escape(new Date())
2 Állítsd be a cache-t hamisnak
$.ajax uncached verzió:
$.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){
alert(msg);
}
});
3. A labels.html fájl tetejére a következő nyilatkozatot kell mellékelni:

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

<META HTTP-EQUIV="Expires" CONTENT="-1">
4. A betöltési függvény nemcsak a HTML-t hívhatja, hanem szkriptet is, például labels.php, a fejlécek függvényét használhatod a php fájlban:

<?php

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

?>
5 Használj posztot a get módszer helyett.
A Post módszer használatakor figyelned kell a következőkre:
Állítsuk be a fejléc Context-Type-jét application/x-www-form-urlencode módra, hogy a szerver tudja, hogy vannak paraméterváltozók az entitásban. Általában az XmlHttpRequest objektum SetRequestHeader("Context-Type","application/x-www- form-urlencoded) eszközét használják; ")。 Példa:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
A paraméter egy kulcs-érték pár, amely megfelel a névnek/értéknek, és minden értékpárt egy > jel választja el egymástól. Például var name=abc&sex=man&age=18, figyelj a var name=update.php-re?

abc&sex=man&age=18 és var name=?abc&sex=man&age=18 helytelenül van írva;
Az érvet a Send metódban küldik, például xmlHttp.send(name); Ha get metódus, közvetlenül xmlHttp.send(null);

A szerveroldali kérésparaméter megkülönbözteti a Get és a Post (Get) (Get) és a Post (Küldés) (Getés) (Küldés) (Get) (Küldés) (Küldés) Ha ez a get metódus, akkor $username = $_GET["username"]; Ha posztolási módszerről van szó, akkor $username = $_POST["felhasználónév"];
6 Fejlécet ("Cache-Control: no-cache, must-reva lidate") a szerver oldalon;
7 Adj hozzá xmlHttpRequest.setRequestHeader("If-Modified-Since","0") mielőtt ajax elküldi a kérést;
8 Hozzáadni xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") mielőtt ajax elküldi a kérést;




Előző:c# Konvertáld a \u64CD\u4F5C\u6210\u529F kínai "sikeres művelet"
Következő:Validate jQuery html5Validate plugin HTML5 formákon alapul
 Háziúr| Közzétéve 2015. 09. 05. 10:23:09 |
url?username=test&aaa= Math.random()
 Háziúr| Közzétéve 2015. 09. 05. 10:24:24 |
$.getJson módszer Amikor ugyanazt az oldalt ismételten kérik, csak az adat töltődik be a gyorsítótárból, és az URL-t minden újratöltéskor dinamikus paraméterekkel kell követni
$.getJson('a.ashx?t='+new Date() ,'{a:b}',fun.... )
A paraméterlistában paraméterek megváltoztatása érvénytelen.
function changeValidateCode(obj) {
//获取当前的时间作为参数,无具体意义
var timenow = új Date().getTime();
//每次请求需要一个不同的参数,否则可能会返回同样的验证码
Ez kapcsolódik a böngésző gyorsítótározási mechanizmusához, és beállíthatod az oldalt úgy, hogy ne gyorsítótározzon (cache), így ez a paraméter nem használható.
obj.src='rand.action?d='+timenow;
}
<img id='rand' src='rand.action?t=<%=new Date().getTime() %>' onclick='changeValidateCode(this)' title='Nem látok tisztán? Váltson egyet! ' szélesség='50' magasság='22'/>
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com