Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 12520|Atsakyti: 2

[Jquery] [Pasukti] į jQuery.getJSON talpyklos problema

[Kopijuoti nuorodą]
Paskelbta 2015-09-05 10:21:58 | | |
jquery getJson metodas nuskaito tą pačią užklausą tiesiai iš talpyklos po pirmosios užklausos serveriui gauti grąžintus duomenis ir nebeprašo duomenų bazės.

Štai kaip tai išspręsti:

1 Kiekvieno skambučio URL nustatymas
Metodas: prie parametro pridėkite atsitiktinį skaičių.
1 pavyzdys:
jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){}
2 pavyzdys:
"xxx.aspx?randID="+Math.random
3 pavyzdys:
"xxx.aspx?randID="+ pabėgimas(nauja data())
2 Nustatykite talpyklą į klaidingą
$.ajax uncached versija:
$.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){
įspėjimas (msg);
}
});
3. Į labels.html failo viršų įtraukite šį teiginį:

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

<META HTTP-EQUIV="Galiojimo laikas" CONTENT="-1">
4. Įkėlimo funkcija gali ne tik iškviesti HTML, bet ir scenarijų, pvz., labels.php, galite naudoti antraštės funkciją php faile:

<?php

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

?>
5 Naudokite paštu, o ne gauti metodą.
Naudodami "Post" metodą, turite atkreipti dėmesį į:
Nustatykite antraštės konteksto tipą į application/x-www-form-urlencode, kad serveris žinotų, jog objekte yra parametrų kintamųjų. Paprastai naudokite XmlHttpRequest objekto SetRequestHeader("Context-Type","application/x-www- form-urlencoded); ")。 Pavyzdys:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
Parametras yra rakto ir reikšmės pora, atitinkanti pavadinimą / reikšmę, o kiekviena reikšmių pora yra atskirta > ženklu. Pavyzdžiui, var name=abc&sex=man&age=18, atkreipkite dėmesį į var name=update.php?

abc&sex=man&age=18 ir var name=?abc&sex=man&age=18 parašyti neteisingai;
Argumentas siunčiamas naudojant siuntimo metodą, pvz., xmlHttp.send(name); Jei tai yra gavimo metodas, tiesiogiai xmlHttp.send(null);

Serverio užklausos parametras išskiria "Get" ir "Post". Jei tai yra gavimo metodas, tada $username = $_GET["vartotojo vardas"]; Jei tai yra įrašo metodas, tada $username = $_POST["vartotojo vardas"];
6 Pridėti antraštę ("Cache-Control: no-cache, must-reva lidate") serverio pusėje;
7 Pridėti xmlHttpRequest.setRequestHeader("If-Modified-Since","0") prieš ajax siunčia užklausą;
8 Pridėkite xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") prieš ajax siunčiant užklausą;




Ankstesnis:c# Konvertuoti \u64CD\u4F5C\u6210\u529F į kinų kalbą "Operacija sėkminga"
Kitą:Patvirtinkite jQuery html5Patvirtinkite papildinį pagal HTML5 formas
 Savininkas| Paskelbta 2015-09-05 10:23:09 |
url?username=test&aaa= Math.random()
 Savininkas| Paskelbta 2015-09-05 10:24:24 |
$.getJson metodas Kai pakartotinai prašoma to paties puslapio, iš talpyklos įkeliami tik duomenys, o kiekvieną kartą iš naujo įkeliant URL reikia sekti dinaminius parametrus
$.getJson('a.ashx?t='+new Date() ,'{a:b}',fun.... )
Parametrų sąrašo parametrų keitimas neleistinas.
function changeValidateCode(obj) {
//获取当前的时间作为参数,无具体意义
var timenow = nauja data().getTime();
//每次请求需要一个不同的参数,否则可能会返回同样的验证码
Tai susiję su naršyklės talpyklos mechanizmu, taip pat galite nustatyti, kad puslapis nebūtų talpykloje, kad šis parametras nebūtų naudojamas.
obj.src='rand.action?d='+timenow;
}
<img id='rand' src='rand.action?t=<%=new Date().getTime() %>' onclick='changeValidateCode(this)' title='Nematote aiškiai? Pakeiskite vieną! ' width='50' height='22'/>
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com